最近要做个基于oauth的通行证系统,同时要实现一键登录。对于oauth这一块不多说,因为它已经有规范的技术和流程。所以考虑的最多的就是sso的实现。感觉用的比较多的方法就是通过cookie共享来实现登录状态同步。所以我也打算用此方法来实现同步登录。简单流程图如下:

OAUTH流程:
1.用户发起登录操作将会引导到oauth的登录页面。
2.用户输入帐号密码登录,验证通过后oauth将返回accessCode和username(uid)。
3.客户端后台通过返回过的accessCode和username去oauth服务器换取token。
4.拿到token后,通过token来获取用户信息。
SSO流程:
1.OAUTH服务器返回accessCode的同时通过前端js来通知其他受信的平台。
2.受信平台收到通知后解码数据,查询登录用户是否已经在此平台激活,若激活通过cookie共享来写入用户状态,反之不做处理(这里不做处理主要是为了防止接口被破解后利用接口刷用户)
其中sso流程只要参考了uc同步登陆的实现方式,不知道设计是否有不足地方,欢迎大家拍砖~~~