使用Token方式实现用户身份鉴权认证

一、什么是Token?

Token,也称为“令牌”,是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。比如如下形式:

39faf62271944fe48c4f1d69be71bc9a

二、为什么使用Token?

传统验证用户身份的方式,大多为基于服务器验证的方式,即cookie+session的方式,由于HTTP协议是无状态的,导致程序需要验证每一次请求,从而辨别客户端的身份。

用户登录成功将其信息存入session中,用户每次请求都会将携带session id的cookie一起发送器服务端,进行校验,随着Web、应用程序、以及移动端的崛起,这种验证方式弊端逐渐显现,尤其是在可扩展性方面。

引发的问题比如用户增多导致内存开销较大、CORS(跨域资源共享)以及CSRF(跨站请求伪造)等。

引入Token验证机制后,请求会发送token而不再是发送cookie能有效够防止CSRF,即使在客户端使用cookie存储token,但cookie也只有存储功能,而不再具备验证功能,因此安全性得到了极大的提高。

而且只要token设计的足够复杂,除非用户泄露,否则几乎没有被破解的可能,加上token是有时效的,在有限的时间加上有限的算力,更是无懈可击,这也类似于加密资产比如比特币钱包对应的私钥,安全性极高。

另外Token可以有效减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。

三、基于Token的身份验证流程

客户端使用用户名跟密码请求登录

服务端收到请求,去验证用户名与密码

验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端

客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里

客户端每次向服务端请求资源的时候需要带着服务端签发的 Token

服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据

四、Token的使用

在我们做用户权限认证的时候,每次请求都会将Token放在请求头中一起发送到服务器端,服务器端通过拦截器进行拦截校验,如果不存在Token、Token错误或者Token过期,则拒绝请求,有效则返回相应的返回结果。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

在这里插入图片描述

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一个开源的Java开发框架,它简化了Spring应用程序的配置和部署过程。它可以与OAuth2协议一起使用实现身份验证和授权。 OAuth2是一种开放标准的授权协议,它允许用户授权第三方应用程序代表他们访问他们在另一个应用程序上的资源。它通过使用令牌来实现授权。 在使用Spring Boot实现OAuth2授权时,我们首先需要配置一个认证服务器,该服务器将生成和分发访问令牌(Access Token)。这可以通过使用Spring Security OAuth2库来实现。 OAuth2授权的基本流程如下: 1. 用户通过浏览器访问客户端应用程序,并请求访问受保护的资源。 2. 客户端应用程序将用户重定向到认证服务器,以进行身份验证。 3. 用户提供他们的凭据进行身份验证。 4. 认证服务器验证用户凭据,并返回授权码(Authorization Code)给客户端应用程序。 5. 客户端应用程序向认证服务器发出请求,用授权码交换访问令牌(Access Token)。 6. 认证服务器验证授权码,并生成并分发访问令牌给客户端应用程序。 7. 客户端应用程序使用访问令牌来获取和访问受保护的资源。 Spring Boot通过提供一组注解和配置选项,使得实现以上流程变得非常简单。我们可以使用注解比如@EnableAuthorizationServer和@EnableResourceServer来配置认证和资源服务器。此外,我们还可以使用注解如@OAuth2client和@OAuth2ResourceServer来标记受保护的资源和需要授权访问的方法。 总结而言,Spring Boot可以帮助我们轻松实现OAuth2的令牌认证和授权。我们只需使用一些注解和配置选项,就能够实现一个安全的身份验证和授权系统。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值