- 背景
在使用百度脑图时,我使用了百度账号进行登录,登录成功后发现没有数据,发现账号错了,然后进入百度中心退出账号重新登录,然后刷新百度脑图的页面,发现账号依然是之前的账号。这是什么原因? - 登录流程
这里的登录方式就是sso(单点登录),简单描述下系统间的交互过程。
该过程是没问题的,但是百度中心退出账号后,百度脑图还在线,并且百度中心登录另一个账号后,同样百度的系统下存在2个账号,用户体验不是很好。 - 思考优化点
可以发现,整个问题在于百度中心退出后,子系统百度脑图却没退出,所以这里需要增加处理,在百度中心退出时,退出已经登录的子系统。
这里就需要进行子系统登录记录,以便推出时回查。 这个地方可以建立一个表记录登录关系:
user_id | login_status | sub_system | logout_url |
---|---|---|---|
1 | 1 | naotu | naotu/logout |
-
退出流程
在百度中心退出时,检查已经登录的子系统,进行/logout_url调用,通知子系统进行退出处理(session失效)。这些动作可以通过异步完成。
总结
sso系统的内容其实还有多种多样的实现,平时使用百度脑图比较多, 突然发现了这个很明显的问题,简单记录下。