同域名共享登录状态问题溯源&总结
需求
存在 A 和 B 两个挂载在同一个域名下的系统,希望可以一次登录、处处通行,指域名下共享登录状态。两个系统均为 papaya
模板项目,走标准的内置中间件 papaya-cas
登录流程。
问题现状是,两个系统配置了相同的 session key
,配置了同一个 redis client
,出现了登录状态共享但没完全共享的问题,表现为 A 系统登录后,B 系统需要重新走登录流程,已登录的情况下就会出现自动 302
重定向并跳转回来的情况,未登录就会直接跳到登录页面。但是 cookie
确实是同一个。下面列出问题如何溯源以及解决,先介绍一下前置的信息。
文中不会详细介绍部分基础知识,如 session/cookie、koa、中间件等知识