登录的token配置方法和存放位置

token的定义

Token(令牌)是一种用于验证和授权用户访问资源的身份凭证。

在许多应用程序中,用户在登录时会获得一个唯一的令牌,用于在后续的请求中进行身份验证。

配置登录令牌的步骤

添加依赖

首先,在Spring Boot项目的构建工具(如Maven或Gradle)中添加与JWT相关的依赖项,例如io.jsonwebtoken:jjwt

创建JWT工具类

编写一个JWT工具类,负责生成和解析JWT令牌。该工具类可以包括以下功能:

  1. 生成令牌:根据给定的用户信息、过期时间和签名密钥,使用JWT库生成JWT令牌
  2. 解析令牌:从请求中获取JWT令牌,并使用JWT库验证令牌的合法性并提取其中的用户信息。

登录API开发

  1. 验证用户提供的用户名和密码是否正确。
  2. 如果验证通过,使用JWT工具类生成JWT令牌。
  3. 将生成的令牌作为响应一部分返回给客户端。

客户端存储令牌

在前端应用中,使用Axios发送登录请求,并在登录成功后将返回的令牌存储在浏览器的localStorage或sessionStorage中

可以使用Vue和Vuex来管理和持久化令牌和其他用户信息。

请求验证

在后续的请求中,客户端通过在请求头部(通常使用"Authorization"字段)中附带JWT令牌来进行身份验证。

后台服务器通过JWT工具类验证令牌的合法性,并提取其中的用户信息以进行权限验证和授权

注意点

JWT令牌应该具有适当的过期时间,并且需要配置密钥来签名和验证令牌。

密钥应该保持机密,不应该直接暴露在代码中,最好将其存储在配置文件中或使用环境变量来提供。

常见的存储方式

关于如何存储令牌,这通常是根据具体的应用程序和安全要求而定。

服务器端存储

在许多情况下,应用程序的服务器端会生成并存储令牌。

用户在登录后,服务器会为其分配一个令牌,并将其存储在服务器的数据库中或者内存中的会话中。

这样,每次用户发送请求时,服务器可以验证令牌的有效性。

JSON Web Token(JWT)

JWT是一种常见的令牌标准,用于在网络应用程序之间传递安全声明。

JWT 通常由三部分组成:头部(Header)、载荷(Payload)和签名(Signature)。

令牌的配置和存储方式可以是将其放在请求的授权头部中(例如,Bearer Token),或者作为请求参数传递。

客户端存储

在某些情况下,令牌可能会存储在客户端(例如浏览器)中,通常以 cookie 或**本地存储(localStorage 或 sessionStorage)**的形式存在。

客户端在每次请求时,会自动将令牌附加到请求中,并发送给服务器进行验证。

总结

无论是服务器端存储还是客户端存储,都需要采取适当的安全措施来保护令牌的机密性和完整性。这包括使用安全的传输协议(如HTTPS),适当的令牌过期时间和刷新机制,以及防止跨站点请求伪造(CSRF)等攻击的措施。

总之,令牌的配置和存储方式取决于应用程序的设计和安全要求。根据具体情况,可以选择服务器端存储、JWT 或客户端存储等方式来管理和传递令牌。

项目中运用实例

后台项目初始化

  1. 使用Spring Boot作为后台框架,配置Spring Security用于用户认证和授权。
  2. 在登录API中,使用JWT(JSON Web Token)生成并返回令牌,作为用户身份验证的凭证。

跨域问题的解决

  1. 在Vue前端项目中,使用Axios库发送HTTP请求至后台。
  2. 在Axios请求中设置withCredentials: true,以允许跨域请求携带认证凭证(例如,cookie)。
  3. 在后台的SpringBoot应用中配置CORS(跨域资源共享)以允许来自Vue前端项目的跨域请求。

用户信息的保存和持久化

  1. 使用Vue中的Vuex状态管理库来保存用户信息,以便在不同组件之间共享
  2. 在Vuex中,可以将用户信息存储在state中,并通过mutations进行修改和更新。
  3. 为了持久化用户信息,可以使用浏览器的sessionStorage或localStorage,在用户登录成功后将令牌和其他用户信息存储在其中。

存储位置的回答

登录的令牌通常是由后端生成并返回给前端,前端可以选择将其存储在浏览器的localStorage或sessionStorage中。

这样,在后续的请求中,前端可以从存储中获取令牌并附加到请求中,以进行身份验证。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值