1 、网站是基于 nginx+php+mysql 的环境开发的,框架是 thinkphp 2 、客户预计有 4 个站点,由于是推广到不同国家的语言站,客户是要求每个站点部署在单独的服务器上,数据库也是独立部署的 3 、需求是有一个总管理员的账号,登录其中一个站点后台后,可以无需登录切换到其他站点的后台。同时可以管理其他站点管理员的信息 4 、是不是需要把其中一个站点作为主站,通过这个站点来管理所有站点的管理员信息?
请问有合理的方案可以解决以上问题?
1
test0103 2023-03-01 21:39:25 +08:00 via Android
跨站的网页会话管理,而不是单点登录,需求不一样
|
2
echoless 2023-03-01 21:43:00 +08:00 via Android
数据库都独立了 怎么搞?
除非是数据库不独立 每个站算一个 tenant |
3
z7356995 2023-03-01 22:43:01 +08:00 via Android
这个登录一个页面以后,把其他几个管理页面 iframe 进来就好了。验证一下登录 token
|
4
Xusually 2023-03-01 23:26:44 +08:00
登录每个站点的时候,同时登录主站种主站 cookie 。
访问每个站点的时候,尝试用现有的主站 cookie 去验证主站是否登录,登录的话,主站验证后带 token 跳转子站点种子站登录 cookie 。 后续正常走子站的权限验证。 不同站点的登录可以用 iframe 做,跳转 token 验证,种 cookie 权限验证可以主站和子站的后端通信。 |
5
Casbin 2023-03-01 23:52:42 +08:00
可以看下 casdoor 的基于 Silent Signin 技术的 SSO 方案: https://casdoor.org/zh/docs/how-to-connect/single-sign-on
|
6
JerryMouse 2023-03-02 06:16:35 +08:00 via iPhone
SAML ?
|
7
jucelin 2023-03-02 08:44:40 +08:00
1 个主站,nginx 反代其他 3 个站点,这样同域下,Cookie 可以直接获取
|
8
litchinn 2023-03-02 08:48:00 +08:00
这个应该不能叫单点登录,你这个需求感觉可以在切换其他站点时做一个隐形登录,如果要每个站点完全无关联的话,就得要求每个站点的总管理员账号密码一致
|
9
bunny189 2023-03-14 14:34:16 +08:00
可以但是得加钱
|