boss 有个要求,要求我实现我们公司的目前所有应用(公司小,用户数还少)实现统一的账户密码注册登录。目前百度好像就实现了这个功能。 我有两个思路。一个是在数据库中单独建一个用户表。所有应用登录时都调用这个表。二是做一个总的用户中心。通过 oauth2.0 授权其他应用登录,各个不再提供密码登录的页面。但是总感觉不对。 第一种方案,感觉还要在各个应用中也建一个用户表。总表和各个应用的表可能会产生冲突。 请问有没有做过这块的给小弟我提高一个思路?谢谢了
看 Ruby China 源代码,现成的例子🍐啊
https://github.com/ruby-china/homeland/pull/832
演示:
https://try.gethomeland.com (Ruby China 作为主站)
#10 楼 @dagon 我个人没有用过,你可以看一下 api 文件夹: https://github.com/rbCAS/CASino/tree/9ebf812f5b8cd84e2c52ec87f7974944900aed23/app/api/casino
#13 楼 @dagon 我开始也有这方面疑问,现在非常清楚了,
你需要一个主站,a.com
一个 CAS server: passport.a.com
另外很多其它站点:c.com d.com
a.com 上除登录以外的功能都用 devise,登录的时候跑到 passport.a.com,这方面 CASino 有文档,也有例子。
a.com 和 passport.a.com 放在一台服务器上最简单,也可以分开放,passport.a.com 有自己的几张表,再指定读取 a.com 上的 user 表,用来验证用户有效性。
c.com d.com 也是用 devise,有自己的 user 表,开始是空的,用户登录的时候,会从 passport.a.com 得到一些字段(字段可定义),再插入到 user 表。以后登录不再插入,看情况更新。c.com d.com 只有登录功能,其它的改密码修改作息都在 a.com 上做。
我还不是很清楚你的场景,多个应用是多个网站还是多个移动应用,以后会不会扩展?需要多站点免登陆还是相同账号密码登陆还是授权验证?
多系统共用的账号系统要优先选用通用的协议,不要从零开始。