登陆

flask - python web中如何共享登录状态?

在一个域名下面会有好多个子域名,每个子域名对应一个子系统,这些子系统有的是用DJANGO,有的是用Flask等不同的框架开发,那么,我们如何在这不同系统间共享登录状态?也就是说,只要在某一个系统登录了,在使用其他系统的时候也共享着登录的状态,不需要再次登录,除非登录失效。这样的话要怎么做呢?

# Python
巴扎黑巴扎黑1572 天前413 次浏览

全部回复(2)我要回复

  • 淡淡烟草味

    淡淡烟草味2017-07-05 10:36:20

    看看什么叫单点登录

    回复
    0
  • 迷茫

    迷茫2017-07-05 10:36:20

    可以参考:
    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的。

    回复
    0
  • 取消回复发送