Kilerd
V2EX  ›  问与答

几个自己的网站,怎么统一登录。

  •  
  •   Kilerd · Jan 9, 2017 · 4205 views
    This topic created in 3454 days ago, the information mentioned may be changed or developed.

    RT 。 不使用统一数据库的情况下,怎么几个网站用一个账号登录。

    我能想到的就是 oauth2.0 。 还有其他简单的方法吗???

    Supplement 1  ·  Jan 10, 2017
    看来, Oauth 是为数不多的选择中最佳的一个了。
    23 replies    2019-10-10 16:46:16 +08:00
    oisc
        1
    oisc  
       Jan 9, 2017
    ucenter 够简单了吧
    icedx
        2
    icedx  
       Jan 9, 2017 via Android
    oauth2.0 正解
    caixiexin
        3
    caixiexin  
       Jan 9, 2017 via Android
    自己写一个基于缓存的统一认证服务也不麻烦。
    loading
        4
    loading  
       Jan 9, 2017 via Android
    openid ,不知道现在如何了。
    loading
        5
    loading  
       Jan 9, 2017 via Android
    本质都是 oauth
    Kilerd
        6
    Kilerd  
    OP
       Jan 9, 2017 via iPhone
    @caixiexin 基于缓存?求指点。
    Kilerd
        7
    Kilerd  
    OP
       Jan 9, 2017 via iPhone
    @loading openid 不够 oauth2 好。
    bjtugun
        8
    bjtugun  
       Jan 9, 2017   ❤️ 1
    jwt?
    caixiexin
        9
    caixiexin  
       Jan 9, 2017 via Android
    @Kilerd 就是传统的那种单点登录系统,登录后颁发票据,跨系统跳转就交换票据,所有敏感数据的接口必须携带这个票据。各平台服务端通过拦截器机制到认证服务那边校验票据。
    后端单独写一个服务来作为各平台提供登录、票据认证,只有用户数据要存数据库,登录票据直接用 Redis 等缓存维护。
    耶鲁大学那个 CAS 就是这类系统的极致,但是个人用太大了。自己用的话,照着这种模式写个简单的就行了,就几个接口。
    当然最简单的还是用 openID 或 OAuth 。
    GG668v26Fd55CP5W
        10
    GG668v26Fd55CP5W  
       Jan 9, 2017 via iPhone
    ucenter 确实是最简单的方法
    garyalen
        11
    garyalen  
       Jan 10, 2017 via Android
    oauth
    Showfom
        12
    Showfom  
    PRO
       Jan 10, 2017
    sso
    shiny
        13
    shiny  
    PRO
       Jan 10, 2017 via iPhone
    六年前就已经满大街单点登录的讨论了吧?
    Kilerd
        14
    Kilerd  
    OP
       Jan 10, 2017
    @Showfom 感觉 SSO 实现起来跟 oauth 差不多吧。就是把一些获取 token 的过程无感化了。

    不过 SSO 个人感觉存在一个问题。当用户打开一个新的网站时 :“咦,怎么自动登录了”, 会给人一种不靠谱的节奏。
    nfroot
        15
    nfroot  
       Jan 10, 2017
    @Kilerd 千万别这样以为,我在用淘宝之前从来没什么疑惑。

    但是用淘宝以及一些附加服务的时候……(比如阿里大鱼),竟然不准我用密码登录,还要刷脸!

    所以说……无感才是最好的,有感的时候想哭。
    Kilerd
        16
    Kilerd  
    OP
       Jan 10, 2017
    @nfroot 其实对于 oauth 来说,也算是无感吧。

    点击“登录” -> oauth 服务器记录已经登录了----302---> 返回源站。

    对于用户来说,点击登录就好了,什么都不用填(当然了,第一次要允许授权。如果应用全是自己家做的,感觉授权的按钮都可以去掉了,毕竟是互相信任的)

    弄个简化版的 oauth 体验应该会比 sso 好。
    nfroot
        17
    nfroot  
       Jan 10, 2017
    @Kilerd 自己用确实可以简化许多的。我之前也是自己写的,就是不知道用框架会不会简单更多
    forblackking
        18
    forblackking  
       Jan 10, 2017 via Android
    可能不是很符合要求,手里一个 yubikey ,登录自己网站通过 u2f 认证,可以用第三方 API 或自己实现 不过就用不到账号了
    alect
        19
    alect  
       Jan 10, 2017
    @forblackking 你这么说的话倒是还有一种方法简单些,统一颁发证书登录呗
    Kilerd
        20
    Kilerd  
    OP
       Jan 10, 2017 via iPhone
    @alect 证书登录要服务器是 CA 才行吧。我之前也这么想过。
    wdrsam
        21
    wdrsam  
       Jan 10, 2017
    单点登录呗,存 token 到 redis 上。
    alect
        22
    alect  
       Jan 10, 2017
    @Kilerd 不用,验证自签发的证书也行的。我目前就这么干的。。。
    登陆后台提示选择证书登录就行,不需要从正规 CA 签,自签发的就行了。
    ivydom
        23
    ivydom  
       Oct 10, 2019
    可以用 Authing,OAuth 2.0 的实现方。

    在线体验:sample*authing*cn
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1329 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 60ms · UTC 23:59 · PVG 07:59 · LAX 16:59 · JFK 19:59
    ♥ Do have faith in what you're doing.