单点登录
我想在一个现有的网站中,将nodeclub集成进去实现社区的功能。牵涉到单点登录的问题。 先谈谈自己的实现思路:
- 网站与Nodeclub两边的用户数据需要同步,做到统一的身份管理;
- 用户不管在网站还是Nodeclub登录了,进入到另外一个的时候,通过URL带过去一个Token(加密的用户信息,外加一个公钥),另外一个应用的登录机制需要进行修改,获取到这个Token之后,解密获取用户名。
因为对安全性的要求不是很高,所以这种方式,逻辑上应该是没有问题的。 但是因为对Nodeclub还不是很了解,所以想知道要对它的登录机制进行修改的话,修改哪个文件(找到一片参考文章,还没有仔细去看:https://cnodejs.org/topic/515535485dff253b374288da)。 因为不想重复造轮子,有做过的朋友希望指导一下。🙏
URL携带 Token 不是一个好的思路,因为 URL 会被保存以及打印日志,会造成一系列问题。
想要集成 nodeclub 做单点登录,改动会非常大,说一下我自己的思路。
-
登录入口会作为一个单独的站点,例如 passport.xxxx.com 所有登录都会跳转到这里。 Cookie 可以设置安全域名,因此这里返回的授权,要包含允许的子域名,例如 bbs.xxxx.com
-
授权站点需要提供内网接口,方便子服务快速查询授权 Cookie
-
废除 NodeClub 自身的授权验证,授权认证使用内网的联合登陆认证
该模型参考 bilibili
@TakWolf 你说的机制基本属于单点登录的反向代理机制。 谢谢建议!
cnode存在的一个很主要目的是在保证功能可用的情况下,代码尽可能清晰,让新手可以读懂一个线上项目的骨架。 你说这些点,我在工作中有可能去实践,但nodeclub代码不会变。
2017-11-01 20:03 GMT+08:00 zhenjun [email protected]:
@TakWolf https://github.com/takwolf 你说的机制基本属于单点登录的反向代理机制。 谢谢建议!
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/cnodejs/nodeclub/issues/999#issuecomment-341088021, or mute the thread https://github.com/notifications/unsubscribe-auth/ABGB70oFDLRQKK15ysyOEyApJKbJw5AKks5syF4tgaJpZM4QMEaM .
-- GitHub: https://github.com/alsotang