@BurdenBear
2018-01-30T02:25:31.000000Z
字数 927
阅读 452
文档 大鱼
为了满足大鱼金融旗下官网,学院,商城等多应用多客户端(手机、Web)共享账户体系及单点登陆的功能,开发了相对独立的单点登录(SSO)模块,采用开源的单点登录的CAS协议。
其原理可以参考这篇文章http://blog.csdn.net/csdnxingyuntian/article/details/54970102。
其在各语言都用客户端。python中cas的server和client都有完整的实现。
对于web端,主要使用session认证机制,集成相对简单。当浏览器和应用程序没有建立会话时,跳转到cas登录页面即可,这些重定向过程基本由后端来决定,前端无需添加额外工作。
而我们移动段的登陆权限并没有使用基于session的验证机制,而是使用的基于Token的验证机制。所以登录过程变成了一个获取token的过程,而且最好在一次请求中完成。这一流程操作如下:
1.调用SSO模块的restful登录接口,换取SSO模块的Token
2.请求SSO模块的CAS登录接口,传入service参数,即应用程序cas的验证回调地址,此地址一般都有一个next参数,表示cas登录验证通过后,重定向到应用程序的某个页面。在这里我们将next参数中放入应用程序获取token的接口地址,最后经过几次重定向就可以得到应用程序的token。
以我们的测试环境举例: