自定义单点登录

1.首先用户输入账号密码,发送ajax请求和自定义token传递给网关

2.在网关中,增加变量用户的IP值和表示服务调用来源的一个变量(通过该变量判断是外部请求,请求服务还是服务与服务之间相互访问,实现了单点登录),放入header,一起传递到用户的服务中。

3.在用户服务中,首先访问redis,通过token查询UserLogin的值,如果为空,就从数据库查询,查询到后。往redis中写入(防击穿),一个Hash key存储手机号,一个Zset key存储过期时间。

4.如果redis中有UserLogin的值,那就比较账号跟密文(密码通过数据库的盐MD5加密的密文)是否正确,如果不正确,抛异常。

5.如果正确,从redis查询UserInfo的值,如果redis查询不到,就去数据库查询。

6.如果数据库存在,就把数据写入redis中(防击穿),设计过期时间30分钟,同时创建一个新的token一起返回给前端。

7.如果redis中存在,转换成UserInfo对象,把token也一起返回前端。

8.前端收到两个数据,存储在LocalStorage。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值