1,登录校验的实现思路是怎样的?
接收前端请求传递的用户名和密码,然后再根据用户名和密码查询用户信息,如果用户信息存在,则说明用户输入的用户名和密码正确。如果查询到的用户不存在,则说明用户输入的用户名和密码错误。
2,会话技术有哪些方式可以实现?
1.客户端会话跟踪技术:Cookie
2.服务端会话跟踪技术:Session
区别:Cookie是存储在浏览器端,Session是存储在服务器端
jwt令牌
3,JWT令牌组成部分有哪些,各自作用是什么?
第一部分:Header(头),作用:记录令牌类型、签名算法等。
{
"alg":"HS256",
"type":"JWT"
}
第二部分:Payload(有效载荷),作用:携带一些用户信息及过期时间等。
{
"id":"1",
"username":"Tom"
}
第三部分:Signature(签名),作用:防止Token被篡改、确保安全性。
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
secret
)
4,怎么使用JWT令牌?(依赖,创建,校验)
1.pom.xml 引入jwt的依赖
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
2.生成JWT代码实现
public class JwtDemo {
@Test
public void genJwt(){
Map<String,Object> claims = new HashMap<>();
claims.put("id",1);
claims.put("username","Tom");
String jwt = Jwts.builder()
.setClaims(claims) //执行第二部分负载, 存储的数据
.signWith(SignatureAlgorithm.HS256, "itheima") //签名算法及秘钥
.setExpiration(new Date(System.currentTimeMillis() +