标题
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错误 <br>
{ "timestamp": 1567564486909, "status": 401, "error": "Unauthorized", "message": "Full authentication is required to access this resource", "path": "/users/userList" } curl http://localhost:8080/users/userList <br> 原因就是因为这个url没有授权,所以返回401<br>
2.注册一个新用户<br>
curl -H "Content-Type: application/json" -X POST -d '{<br> "username": "admin",<br> "password": "password"<br> }' http://localhost:8080/users/signup <br>
3.登录,会返回token,在http header中,Authorization: Bearer 后面的部分就是token<br>
curl -i -H "Content-Type: application/json" -X POST -d '{<br> "username": "admin",<br> "password": "password"<br> }' http://localhost:8080/login <br> 温馨提醒:这里的login方法是spring specurity框架提供的默认登录url
4.用登录成功后拿到的token再次请求/users/userList接口<br>
4.1将请求中的XXXXXX替换成拿到的token<br> 4.2这次可以成功调用接口了<br> curl -H "Content-Type: application/json"<br> -H "Authorization: Bearer XXXXXX"<br> " http://localhost:8080/users/userList "
5.设置了1分钟后Token过期,如果1分钟后再次请求/users/userList接口返回Token过期的异常提示如下图:<br>
6.集成Swagger-ui,方便前后端分离开发,默认访问地址: http://localhost:8080/swagger-ui.html <br>
温馨提示:这里的登录接口还是使用的默认地址,如果你的token过期了,需要你重新登录生成新的token.<br>
下载地址
https://gitee.com/micai-code/springboot-springsecurity-jwt-demo.git
结束语
在使用的过程中,如有问题,可以添加真正讨论技术的QQ交流群,QQ群号为:715224124