0
点赞
收藏
分享

微信扫一扫

用户登录功能之token的使用

真正的大师永远怀着一颗学徒的心
哈喽!大家好,我是小奇,一位程序员界的学徒

用户登录功能之token的使用_java


文章目录

  • ​​一、登录​​
  • ​​1、登录时生成token​​
  • ​​二、根据token查询用户信息​​
  • ​​1、查询用户信息​​
  • ​​三、总结​​

一、登录

1、登录时生成token

我们登录成功后生成一个token也就是随机数,然后将随机数作为key,将登录查询到的用户信息作为value放入redis中,然后设置过期时间,最后将token返回给前端,前端将token存储,用来下一次请求后端的时候使用。

关键代码

//密码正确
//生成token
String token = UUID.randomUUID().toString();
//将用户密码清除再放入redis中
user.setPassword(null);
//向redis中存入token和用户信息
jedisClient.set(REDIS_USER_TOKEN + ":" + token, JsonUtils.objectToJson(user));
//设置过期时间
jedisClient.expir(REDIS_USER_TOKEN + ":" + token, SSO_SESSION_EXPIRE);
//返回token
public TaotaoResult userLogin(String username, String password) {

TbUserExample example = new TbUserExample();
Criteria criteria = example.createCriteria();
criteria.andUsernameEqualTo(username);
List<TbUser> list = userMapper.selectByExample(example);
//没有此用户名
if(list == null || list.size() == 0){
return TaotaoResult.build(400, "用户名或密码错误");
}
TbUser user = list.get(0);
//密码错误
if(!DigestUtils.md5DigestAsHex(password.getBytes()).equals(user.getPassword())){
return TaotaoResult.build(400, "用户名或密码错误");
}
//密码正确
//生成token
String token = UUID.randomUUID().toString();
//将用户密码清除再放入redis中
user.setPassword(null);
//向redis中存入token和用户信息
jedisClient.set(REDIS_USER_TOKEN + ":" + token, JsonUtils.objectToJson(user));
//设置过期时间
jedisClient.expir(REDIS_USER_TOKEN + ":" + token, SSO_SESSION_EXPIRE);
//返回token
return TaotaoResult.ok(token);
}

二、根据token查询用户信息

1、查询用户信息

根据token查询用户信息,如果查询不到证明token已经过期需要重新登录,如果token查询得到就返回用户信息,并且将token的有效时间重新更新为30分钟

@Override
public TaotaoResult getUserByToken(String token) {
//根据token从redis中查询用户信息
String json = jedisClient.get(REDIS_USER_TOKEN + ":" + token);
if(StringUtils.isBlank(json)){
return TaotaoResult.build(400, "此session已经过期,请重新登录");
}
//更新过期时间
jedisClient.expir(REDIS_USER_TOKEN + ":" + token, SSO_SESSION_EXPIRE);
//返回用户信息
return TaotaoResult.ok(JsonUtils.jsonToPojo(json, TbUser.class));
}

三、总结

这里的相关内容还没有整理完毕,文章后面持续更新,建议收藏。

文章中涉及到的命令大家一定要像我一样每个都敲几遍,只有在敲的过程中才能发现自己对命令是否真正的掌握了。

举报

相关推荐

0 条评论