nodeclub icon indicating copy to clipboard operation
nodeclub copied to clipboard

单点登录

Open fandasoft opened this issue 8 years ago • 3 comments

我想在一个现有的网站中,将nodeclub集成进去实现社区的功能。牵涉到单点登录的问题。 先谈谈自己的实现思路:

  1. 网站与Nodeclub两边的用户数据需要同步,做到统一的身份管理;
  2. 用户不管在网站还是Nodeclub登录了,进入到另外一个的时候,通过URL带过去一个Token(加密的用户信息,外加一个公钥),另外一个应用的登录机制需要进行修改,获取到这个Token之后,解密获取用户名。

因为对安全性的要求不是很高,所以这种方式,逻辑上应该是没有问题的。 但是因为对Nodeclub还不是很了解,所以想知道要对它的登录机制进行修改的话,修改哪个文件(找到一片参考文章,还没有仔细去看:https://cnodejs.org/topic/515535485dff253b374288da)。 因为不想重复造轮子,有做过的朋友希望指导一下。🙏

fandasoft avatar Oct 31 '17 01:10 fandasoft

URL携带 Token 不是一个好的思路,因为 URL 会被保存以及打印日志,会造成一系列问题。

想要集成 nodeclub 做单点登录,改动会非常大,说一下我自己的思路。

  1. 登录入口会作为一个单独的站点,例如 passport.xxxx.com 所有登录都会跳转到这里。 Cookie 可以设置安全域名,因此这里返回的授权,要包含允许的子域名,例如 bbs.xxxx.com

  2. 授权站点需要提供内网接口,方便子服务快速查询授权 Cookie

  3. 废除 NodeClub 自身的授权验证,授权认证使用内网的联合登陆认证

该模型参考 bilibili

TakWolf avatar Nov 01 '17 03:11 TakWolf

@TakWolf 你说的机制基本属于单点登录的反向代理机制。 谢谢建议!

fandasoft avatar Nov 01 '17 12:11 fandasoft

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

alsotang avatar Nov 02 '17 03:11 alsotang