1、导入依赖
<!-- token-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.6.0</version>
</dependency>
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.4.0</version>
</dependency>
2、加入工具类
package com.xiao.utils;
import io.jsonwebtoken.Jwts;
import java.util.Date;
public class JwtUtils {
final static String base64EncodedSecretKey = "你的私钥";
final static long TOKEN_EXP = 1000 * 60 * 10;
public static String getToken(String userName) {
return Jwts.builder()
.setSubject(userName)
.claim("roles", "user")
.setIssuedAt(new Date())
.setExpiration(new Date(System.currentTimeMillis() + TOKEN_EXP))
.compact();
}
}
3、Controller测试
package com.xiao.controller;
import com.xiao.Service.LoginService;
import com.xiao.Service.UserService;
import com.xiao.common.Result;
import com.xiao.pojo.User;
import com.xiao.utils.JwtUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
@CrossOrigin
@Controller
@RestController
@RequestMapping("/login")
public class LoginController {
@Autowired(required = true)
private LoginService loginService;
@PostMapping("/user")
public Result save(@RequestParam(value="username", required=false)String username,
@RequestParam(value="password",required=false)String password
){
User user =new User();
user.setUsername(username);
user.setPassword(password);
int i = loginService.loginUser(user);
if(i==1) {
String token = JwtUtils.getToken(user.getUsername());
return Result.successLogin(i,token);
}
else{
return Result.errorLogin(i);
}
}
}