方案 1:
redis 存储格式:key(用户 Id123456789) --- value(token)
使用方式:用户拿 id 和 toen 操作业务
示例:用户操作业务
判断用户 id 是否为空
为空:未登录
不为空:判断 redis 是否包含 id 为 123456789 的 key
不包含:过期失效(跳转登陆)
包含:验证 token 是否一致
一致:操作业务
不一致:异地登陆(重新登陆-覆盖 id
为 123456789 的 token )
方案 2:
redis 存储格式:key(token )---value(用户信息)
使用方式:用户拿 uuid 操作业务
示例:用户操作业务
判断 cookie 是否包含 token
不包含:未登录
包含:判断 redis 是否包含此 token
包含:操作业务
不包含:未登录
刚才想了想,这两种方案的差别是方案 1 不支持多端登陆,方案 2 支持多端登陆吧,问下大家在设计 SSO 系统是怎么设计的呢?或者说常用的方案是什么呢?不太了解公司是怎么用的,好奇问下。