当前位置: 首页> 文旅> 旅游 > 织梦模板首页修改教程_软件开发技术文档_百度在线搜索_seo营销推广

织梦模板首页修改教程_软件开发技术文档_百度在线搜索_seo营销推广

时间:2025/7/9 5:56:52来源:https://blog.csdn.net/hanxuewei666/article/details/142449076 浏览次数:0次
织梦模板首页修改教程_软件开发技术文档_百度在线搜索_seo营销推广

修改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, 如果JwtUtil 爆红,可以降低到 0.11.5 版本试一下。
  • 实现config.filter.JwtAuthenticationTokenFilter类,用来验证jwt token,如果验证成功,则将User信息注入上下文中
  • 配置config.SecurityConfig类,放行登录、注册等接口
    在这里插入图片描述

编写API

一般步骤:service里面接口及其实现类,然后编写controller里面的类,

  • 将数据库中的id域变为自增
    • 在数据库中将id列变为自增
    • pojo.User类中添加注解:@TableId(type = IdType.AUTO)
  • 实现/user/account/token/:验证用户名密码,验证成功后返回jwt token(令牌)
  • 实现/user/account/info/:根据令牌返回用户信息
  • 实现/user/account/register/:注册账号

过程是这样的:首先写接口,然后写接口的实现类(实现类之前的接口),然后编写Controller

需要测试,可以学习一下postman或者直接使用前端进行测试

这里使用之前写好的前端进行测试

知识点的补充学习

HTTP协议中的GET和POST是两种常用的请求方法,它们在Web开发中有着不同的用途和特点:

Post请求和Get请求

  1. GET请求

    • 用途:用于请求从服务器获取数据。通常用于查询字符串参数,如搜索或过滤数据。
    • 数据传输:数据通过URL传递,附加在请求的URL之后。
    • 安全性:由于数据在URL中可见,因此不安全,不应用于传输敏感信息。
    • 缓存:GET请求可以被缓存,这意味着相同的请求可以快速响应,提高效率。
    • 书签:可以被保存为书签。
    • 历史:可以在浏览器历史中保留。
    • 长度限制:URL长度有限制,因此GET请求传输的数据量有限。
  2. POST请求

    • 用途:用于向服务器提交数据,通常用于表单提交或上传文件。
    • 数据传输:数据在请求体(body)中传输,不在URL中。
    • 安全性:比GET更安全,因为数据不在URL中显示。
    • 缓存:POST请求不会被缓存。
    • 书签:不能被保存为书签。
    • 历史:不会在浏览器历史中保留。
    • 长度限制:没有长度限制,可以传输大量数据。

在选择使用GET还是POST时,通常考虑以下因素:

  • 如果需要获取数据,并且数据量不大,可以使用GET。
  • 如果需要向服务器提交数据,或者数据量较大,应该使用POST。
  • 对于敏感数据,应避免使用GET,因为它可能会在URL中暴露数据。

在实际开发中,还应考虑其他HTTP方法,如PUT(更新资源)、DELETE(删除资源)、PATCH(部分更新资源)等,根据具体需求选择合适的方法。

jwt的介绍

JSON Web Token(JWT)是一种用于在网络应用环境间传递声明的紧凑、URL安全的开放标准(RFC 7519)。它被设计为紧凑且安全的,适用于分布式站点的单点登录(SSO)场景。JWT的声明通常用于在身份提供者和服务提供者间传递被认证的用户身份信息,以便从资源服务器获取资源,也可以增加一些额外的业务逻辑所需的声明信息。JWT可以被用于认证,也可以被加密。
JWT由三部分组成:头部(Header)、载荷(Payload)和签名(Signature)。头部包含两部分信息:令牌的类型(通常是JWT)和使用的加密算法(如HMAC SHA256或RSA)。载荷部分存放有效信息,包括注册的声明(如iss、exp、sub、aud等)、公共的声明和私有的声明。签名部分用于验证发送请求者身份,由前两部分加密形成。JWT的优点包括体积小、传输速度快,可以通过URL、POST参数或HTTP头部等方式传输,支持跨域验证,适用于单点登录,且由于其自包含性,可以有效减少服务器查询数据库的次数。然而,JWT也有其局限性,如不能存储敏感信息,因为其载荷是使用Base64编码的,没有加密,且JWT一旦签发,不能被撤销,只能等到过期。在实际应用中,JWT可以用于身份验证、信息交换、单点登录和微服务架构等场景。为了保证安全性,建议不要在JWT中存放敏感信息,设置合理的有效期,确保传输过程安全,并考虑在应用程序层面增加额外的安全措施,如黑名单机制等。

关键字:织梦模板首页修改教程_软件开发技术文档_百度在线搜索_seo营销推广

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: