安全登陆怎么生成token

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安全登陆怎么生成token相关的知识,希望对你有一定的参考价值。

参考技术A 先访问验证接口。接口输出一个根据用户信息生成的token(内容格式随意)和uid。然后后边的每次提交提交token和uid,服务端验证即可。
token生成可以根据useragent等客户端信息来生成。 [

登陆权限--token的使用

前文已给出token的工具类,校验类和配置相关的拦截器,可参考   https://www.cnblogs.com/bbq668/p/11972577.html

那接下来说说token怎么用:

1、由于是前后端分离的项目,那验证是否登录,在写登陆接口过程中:后端获取前端输入的用户名和密码,通过用户名+密码生成token值通过map传递给前端

//用户登录
@RequestMapping("/doLogin")
@ResponseBody
public Map<String,Object> doLogin( @RequestParam String userName, @RequestParam String password) {
Map<String,Object>map=new HashMap<String,Object>();
User user = userService.findUserByUserName(userName);
if (user == null) {
map.put("code",1);
map.put("msg","用户名或密码错误,请重新输入");
return map;
} else if (!user.getPassword().equals(password)) {
map.put("code",1);
map.put("msg","密码输入错误");
return map;
} else {
//登录成功
String token = TokenUtil.sign(userName,password);
//登录成功
map.put("code",0);
map.put("token",token);
map.put("userId",user.getUserId());
map.put("msg","登录成功");
return map;
}
}

2、前端获取通过map语句,保存token值,前后端不分离一般用session来存储,既然分离,前端则用local Storage来实现
保存: window.localStorage.setItem(‘Token‘, Token);
前端调用token则用 window.localStorage.getItem(‘Token‘);
当然后端也就能调用:String token = request.getHeader("Token");
那这里就能可以举一反三,通常页面登陆成功跳转后, 会显示用户呢称,我们也可以用这种方法在前端页面显示出来,非常实用。

总结:
后端通过获取前端传递过来的用户名和密码,然后通过工具类生成token值, 如果登陆成功就把token值传递给前端, 前端把值存储起来,在前端判断是否登陆即可。

以上是关于安全登陆怎么生成token的主要内容,如果未能解决你的问题,请参考以下文章

登陆权限--token的使用

登陆权限--token的使用

登陆权限--token 的生成和验证

登陆权限--token 的生成和验证

请求时token过期自动刷新token

Token验证失败是怎么回事