davinci认证过程
davinci认证过程:
1,登录认证,成功之后将用户对象序列化的信息放入token返回前端(还没写入)
2,前端获取返回,将token的信息加前缀存在Authorization中写入浏览器的header,并每次请求发送给后端
3,后端从header中获取Authorization,去掉前缀,解析成用户对象,对比数据库信息
用到的类:
AuthenticationInterceptor 切面类--每次请求拦截验证
LoginController 登录类
一些知识材料:
TOKEN_HEADER_STRING =Authorization 对应的 token 是对象的序列化
Consts
/**
* Token 前缀
*/
public static final String TOKEN_PREFIX = "Bearer";
后端写给前端的是token--直接用户名转化的
"header" -> " size = 3"
"msg":"",
"code":"",
"token" -> "eyJhbGciOiJIUzUxMiJ9.eyJ0b2tlbl9jcmVhdGVfdGltZSI6MTU3NTMzNjQyNDEwMSwic3ViIjoicm9vdCIsInRva2VuX3VzZXJfbmFtZSI6InJvb3QiLCJleHAiOjE1NzUzMzgyMjQsInRva2VuX3VzZXJfcGFzc3dvcmQiOiIkMmEkMTAkbDZmTG04NnlPazcub3ByUVhMNlNmdUtRTHp0OGR0UVZtYi95QU0zVWN5b1Vvd2I4LnFOVXkifQ.7rSuB5qNw9J-O5as1SLFj6t1G59wzCTinLpKr-a7d6efPOCJH8viwi86tC20-9KNNypqpPbRKhRVPdUiuvrfPw"
Authorization 是前端获取到登录成功的token之后 拼接TOKEN_PREFIX 前缀后自己前端写一份在header中,然后传给后端获取验证----两个方面有变形处理对于程序实现的逻辑隐蔽安全
这个token不用和缓存session对比也能实现认证的原因是这个是jsonwebtoken工具,将用户对象序列化来的,后端反序列化可在和数据库验证
上一篇: 微信实用技巧10个(足以应付日常需求)
下一篇: swagger的使用注意的地方