在一个域名下面会有好多个子域名,每个子域名对应一个子系统,这些子系统有的是用DJANGO,有的是用Flask等不同的框架开发,那么,我们如何在这不同系统间共享登录状态?也就是说,只要在某一个系统登录了,在使用其他系统的时候也共享着登录的状态,不需要再次登录,除非登录失效。这样的话要怎么做呢?
看看什么叫单点登录
可以参考:https://github.com/castlabs/d...
你也可以自己实现:1、搞一个用户中心(用于账户管理、登录等)2、访问一个子系统,先判断是否有token。如果没有,或者已过期,则自动跳转到用户中心。3、用户中心登录成功以后,生成一个token,并跳转回之前要访问的子系统(带上token)4、再访问别的系统时,都需要带上这个token。
还有个办法,不需要显式的带token:用户中心登录成功以后,cookie还保存登录信息。访问各个子系统(页面加载)的时候,通过jsonp去用户中心校验是否已登录:假如用户中心域名www.a.com,那么浏览器会缓存该域名及其对应的cookie;而jsonp跨域去请求www.a.com的时候,会自动带上这个cookie的。
看看什么叫单点登录
可以参考:
https://github.com/castlabs/d...
你也可以自己实现:
1、搞一个用户中心(用于账户管理、登录等)
2、访问一个子系统,先判断是否有token。如果没有,或者已过期,则自动跳转到用户中心。
3、用户中心登录成功以后,生成一个token,并跳转回之前要访问的子系统(带上token)
4、再访问别的系统时,都需要带上这个token。
还有个办法,不需要显式的带token:用户中心登录成功以后,cookie还保存登录信息。访问各个子系统(页面加载)的时候,通过jsonp去用户中心校验是否已登录:假如用户中心域名www.a.com,那么浏览器会缓存该域名及其对应的cookie;而jsonp跨域去请求www.a.com的时候,会自动带上这个cookie的。