修改Spring Security
登录验证模式
传统的验证登录模式
- 公开页面:输入url就可以直接访问
- 授权页面:登录之后才可以访问
Jwt验证模式
- 容易实现跨域
- 不需要在服务器端存储
对比于传统模式将所有的sessionId
换成jwt token
access token
refresh token
过程:通过一个login页面获取一个token,将其存入浏览器中,当访问授权页面的时候都会带上这个token,先验证这个token(包含userId)是否合法,根据userId到数据库中查询信息,提取到上下文中,访问授权的方法。
以上是原理,如何操作呢
- 添加
jwt
依赖,官网搜索jwt
包括jjwt-api
jjwt-impl
jjwt-jackson
- 实现
utils.JwtUtil
类,为jwt
工具,用来创建、解析Jwt token
。
HTTP协议中的GET和POST是两种常用的请求方法,它们在Web开发中有着不同的用途和特点:
Post请求和Get请求
-
GET请求:
- 用途:用于请求从服务器获取数据。通常用于查询字符串参数,如搜索或过滤数据。
- 数据传输:数据通过URL传递,附加在请求的URL之后。
- 安全性:由于数据在URL中可见,因此不安全,不应用于传输敏感信息。
- 缓存:GET请求可以被缓存,这意味着相同的请求可以快速响应,提高效率。
- 书签:可以被保存为书签。
- 历史:可以在浏览器历史中保留。
- 长度限制:URL长度有限制,因此GET请求传输的数据量有限。
-
POST请求:
- 用途:用于向服务器提交数据,通常用于表单提交或上传文件。
- 数据传输:数据在请求体(body)中传输,不在URL中。
- 安全性:比GET更安全,因为数据不在URL中显示。
- 缓存:POST请求不会被缓存。
- 书签:不能被保存为书签。
- 历史:不会在浏览器历史中保留。
- 长度限制:没有长度限制,可以传输大量数据。
在选择使用GET还是POST时,通常考虑以下因素:
- 如果需要获取数据,并且数据量不大,可以使用GET。
- 如果需要向服务器提交数据,或者数据量较大,应该使用POST。
- 对于敏感数据,应避免使用GET,因为它可能会在URL中暴露数据。
在实际开发中,还应考虑其他HTTP方法,如PUT(更新资源)、DELETE(删除资源)、PATCH(部分更新资源)等,根据具体需求选择合适的方法。