V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Kilerd
V2EX  ›  问与答

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

  •  
  •   Kilerd · 2017-01-09 21:49:20 +08:00 · 3549 次点击
    这是一个创建于 2636 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    所以说……无感才是最好的,有感的时候想哭。
    Kilerd
        16
    Kilerd  
    OP
       2017-01-10 09:17:26 +08:00
    @nfroot 其实对于 oauth 来说,也算是无感吧。

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

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

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

    在线体验:sample*authing*cn
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2809 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 14:57 · PVG 22:57 · LAX 07:57 · JFK 10:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.