-
Spring Boot+Spring Security+JWT 实现 RESTful Api 认证(一)
标题
Spring Boot+Spring Security+JWT 实现 RESTful Api 认证(一)
技术
Spring Boot 2、Spring Security 5、JWT
运行环境
IDEA+JDK8.0+MySQL5.0+
简述
Spring Boot 2 + Spring Security 5 + JWT 实现给RestApi增加认证控制
测试流程
下面对我们的程序进行简单的验证
1.请求获取用户列表接口:http://localhost:8080/users/userList接口,会收到401错误
{
"timestamp": 1567564486909,
"status": 401,
"error": "Unauthorized",
"message": "Full authentication is required to access this resource",
"path": "/users/userList"
}
curl http://localhost:8080/users/userList
原因就是因为这个url没有授权,所以返回401
2.注册一个新用户
curl -H "Content-Type: application/json" -X POST -d '{
"username": "admin",
"password": "password"
}' http://localhost:8080/users/signup
3.登录,会返回token,在http header中,Authorization: Bearer 后面的部分就是token
curl -i -H "Content-Type: application/json" -X POST -d '{
"username": "admin",
"password": "password"
}' http://localhost:8080/login
温馨提醒:这里的login方法是spring specurity框架提供的默认登录url
4.用登录成功后拿到的token再次请求/users/userList接口
4.1将请求中的XXXXXX替换成拿到的token
4.2这次可以成功调用接口了
curl -H "Content-Type: application/json"
-H "Authorization: Bearer XXXXXX"
"http://localhost:8080/users/userList"
5.设置了1分钟后Token过期,如果1分钟后再次请求/users/userList接口返回Token过期的异常提示如下图:
6.集成Swagger-ui,方便前后端分离开发,默认访问地址:http://localhost:8080/swagger-ui.html
温馨提示:这里的登录接口还是使用的默认地址,如果你的token过期了,需要你重新登录生成新的token.
下载地址
https://gitee.com/micai-code/springboot-springsecurity-jwt-demo.git
出处:https://www.cnblogs.com/sxdtzhaoxinguo/p/13792097.html