• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    基于redis实现token验证用户是否登陆

    基于项目需求, 我们要实现一个基于redis实现token登录验证,该如何实现呢:

    后端实现:

    1.引入redis相关的依赖

    dependency>
     groupId>org.springframework.boot/groupId>
     artifactId>spring-boot-starter-data-redis/artifactId>
    /dependency>
    dependency>
     groupId>org.springframework.session/groupId>
     artifactId>spring-session-data-redis/artifactId>
     version>2.0.5.RELEASE/version>
    /dependency>

    2.Controller层生成token信息并存入redis中

    //若用户登录验证成功后将对应的登陆信息和登陆凭证一起存入redis中
    //生成登陆凭证token UUID
    String uuidToken= UUID.randomUUID().toString();
    uuidToken=uuidToken.replace("-","");
     
    //将token和用户登录态之间建立联系
    redisTemplate.opsForValue().set(uuidToken,userModel);
    redisTemplate.expire(uuidToken,1, TimeUnit.HOURS);
     
    // 下发token
    return CommonReturnType.create(uuidToken);
    

    3.需要验证的登陆的地方调用即可

     String token = httpServletRequest.getParameterMap().get("token")[0];
     if (StringUtils.isEmpty(token)) {
     throw new BusinessException(EmBusinessError.USER_NOT_LOGIN, "用户还未登陆,不能下单");
     }
     //获取用户的登陆信息
     UserModel userModel= (UserModel) redisTemplate.opsForValue().get(token);
     if(userModel==null){
     throw new BusinessException(EmBusinessError.USER_NOT_LOGIN, "用户还未登陆,不能下单");
     }
     
     OrderModel orderModel = orderService.creatOrder(userModel.getId(), itemId, promoId, amount);
     return CommonReturnType.create(null);

    前端实现

    1.从返回值中取出token并存入localstorage

    if(data.status == "success") {
     alert("登陆成功");
     //取出token放入localstorage
     var token = data.data;
     window.localStorage["token"] = token;
     window.location.href = "listitem.html";
    }

    2.验证用户是否登陆

    var token = window.localStorage["token"];
     if(token == null){
     alert("没有登录,不能下单");
     window.location.href="login.html" rel="external nofollow" ;
     return false;
     } 

    3.当然,需要把token传入后端再校验一次

    url:"http://"+g_host+"/order/createorder?token="+token,

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • PHP+Redis 消息队列 实现高并发下注册人数统计的实例
    • 利用Redis统计网站在线活跃用户的方法
    • PHP使用redis实现统计缓存mysql压力的方法
    • Redis中统计各种数据大小的方法
    • redis 实现登陆次数限制的思路详解
    • redis开启和禁用登陆密码校验的方法
    • 基于Redis位图实现系统用户登录统计
    上一篇:谈谈Redis分布式锁的正确实现方法
    下一篇:使用Redis实现延时任务的解决方案
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    基于redis实现token验证用户是否登陆 基于,redis,实现,token,验证,