老师,关于单点登录的问题
来源:7-8 日志是问题定位的关键
慕尼黑0236198
2020-03-27
亲爱的丝袜老师, 在课程视频中有听您简单的提到单点登录,使用redis, 刚好最近有项目需要用到单点登录;
我的想法是:
首先, 这个多系统是共用用户池的,且目前是同服务器,同顶级域名下; 但不排除后面可能会分不同服务器部署;
前期的同服务器,同顶级域名下的想法是:
- 登录账户密码认证, 生成token, 其中组成token的加密算法中有一个 随机字符串, 生成token后 以这个随机字符串为key,用户信息为value存到redis中; 另一份token则 setcookie(‘token’, ’xxx’, ‘/’, ’顶级域名’);
- 接口认证时, 从cookie取出token, 进过解密算法获取到 随机字符串, 并通过它去取出用户信息;
大体想法这样;
但感觉用cookie不太安全; 而且后期可能会部署不同服务器, 希望老师能给相关的方案指点一下哈, 在此先感谢了
写回答
1回答
-
singwa
2020-03-28
您好。你说的差不多,但是需要注意几点
1、 token 作为key ,value保存用户信息, 没问题,但是需要考虑一个问题,那下次用户在其他设备登录,这个时候会生成一个新的token, 但是之前的token key还在redis中,那这样的话 其他设备还是一样能登录,所以这个你需要再思考下。
2、因为你用了token存redis中, 这个的话 和你 PHP部署多台机器没有关系, 可以正常使用的。
如果你用的是单机生成的文件session来做的话,那这样部署多台PHP服务器 这种方式就不行。
022020-04-01
相似问题