混合前后端分离的用户登录状态如何同步?

网站结构如下:
后端:thinkphp
主站前端:thinkphp的默认模板
用户中心:VUE+jwt的方式与后端通信登录

主站网址:www.abc.com
用户中心:center.abc.com

用户通过用户中心网站登陆后,如何在主站www.abc.com同步登录状态呢?

阅读 2.8k
2 个回答

牵涉到单点登录,不管你访问a.abc.com还是b.abc.com, 一般都要拿着已经完成login的center这个site的session去center绕一圈(使用get方法重定向到center,自带cookie里的sessionid)。然后由center判断是否已经登录,并告诉a说,您放心的让他访问吧。。。

具体可以google下sso的saml协议~也可以自己实现。

你举例的里面,域名是一个,很简单,设置cookie域名为*.abc.com就可以实现
如果域名不是一个,比如a.com和b.com要实现,完整的方案是楼上说的实现SSO,当然小项目太麻烦,可以直接按照ucenter的逻辑,a.com登录的时候,访问b.com一个东西(作用是用来设置登录cookie)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题