26.整合springboot+jwt
- 搭建springboot-web项目
- 添加jwt
jwt整合
- 导包
xml
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.4.0</version>
</dependency>
- 生成token(JSON)
java
package com.neuedu.jwt.controller;
import com.auth0.jwt.JWT;
import com.auth0.jwt.JWTCreator;
import com.auth0.jwt.algorithms.Algorithm;
import com.neuedu.jwt.User;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class LoginController {
public static final String KEY = "loginUser";
/**
* http://www.jshand.org/login
* 登录, 原始 (username、password ->sessionid) 、 (username、password ->token(json))
* @return
*/
@RequestMapping("/login")
public String login(){
//验证用户名、密码
//通过之后,返回登录的令牌 token(JSON)
User user = new User(); //模拟从数据库中查询的 用户信息
user.setId(1);
user.setUserName("admin");
user.setDisplayName("管理员");
user.setTelphone("13888888888");
JWTCreator.Builder builder = JWT.create();
String token = builder.withClaim("userId", user.getId())
.withClaim("userName", user.getUserName())
.sign(Algorithm.HMAC256(KEY));
return token;
}
}
java
package com.neuedu.jwt;
public class User {
private Integer id;
private String userName;
private String displayName;
private String telphone;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getDisplayName() {
return displayName;
}
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
public String getTelphone() {
return telphone;
}
public void setTelphone(String telphone) {
this.telphone = telphone;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", userName='" + userName + '\'' +
", displayName='" + displayName + '\'' +
", telphone='" + telphone + '\'' +
'}';
}
}
- 发送给Vuejs(存储到sessionstorage,放到header)
- Vuejs请求的时候,携带 token(使用header形式),如果刷新,从sessionstorage取出
