传智健康开发者日志——使用Cookie做登录权限校验

我们为了避免集群服务端所产生的不同session的登录认证问题,所以会使用浏览器自带的Cookie存储登录令牌

初始登录业务逻辑:

输入手机号,发送验证码,存入Redis,设置有效时间(手机号验证码分别为键值)

输入表单完成之后点击---登录,发AJAX请求到后台

通过REDIS验证验证码

查询Mysql是否存在member记录,不存在就新增

在Redis中setex一个以令牌为键,member为值的一条记录

令牌= 手机号+(当前时间(毫秒)+超时时间)

把令牌加入cookie响应回去,cookie名称随意

校验是否登录?

每次需要校验时候发送AJAX请求,后台遍历所有cookie,找到带有该名字的cookie

并通过Redis进行时间过期校验

后端代码

@RestController
@RequestMapping("/login")
public class LoginController {

    @Reference
    MobileLoginService mobileLoginService;

    @Autowired
    JedisPool jedisPool;

    /**
     * 发送短信的逻辑,点击发送按钮即可发送短信
     */
    @PostMapping("/send4Login")
    public Result sendLoginMessage(String telephone){

        Integer random=RandomNumberUtil.getNumber();

        boolean flag = new SendMassageUtil().sendSms(telephone, random);

        if (flag){

            /**
             * 如果发送成功,就把信息存到redis里面,以后使用。
             */

            String telephone4LoginInRedis=telephone+"_Number4Login";

            Str
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值