token干什么用_生成token,生成token是怎么进行的,作用是什么?

什么是token?token是由服务器生成的字符串,用作客户端发出请求的token。当第一个会话启动时,服务器生成一个token并将其返回给客户机。将来,客户只需要使用这个token来请求数据,而不需要重新输入用户名和密码。

基于token的身份验证

基于token的身份验证方法不需要将用户的登录日志存储在服务器上。过程如下:

客户端将使用用户名和密码请求登录,并要求服务器确认用户名和密码。

如果检查成功,服务器将发出一个token并将其作为客户端token发送。在接收到token之后,客户机可以将token存储在cookie或本地存储中。每当客户端从服务器请求资源时,客户端必须向服务器发送token。

服务器接收请求,然后验证在客户端请求中找到的token。如果验证成功,请求的数据将返回给客户。当应用程序登录时,加密的用户名和密码将发送到服务器。检查用户名和密码。例如,如果以任何方式成功,将随机生成一个32位字符串作为token,存储在服务器上,然后返回到应用程序。请求后,在token中,服务器检查token,成功返回所需结果,返回错误消息失败,可以重新登录。服务器上的token设置为过期,并且在每次应用程序请求时都会进行验证。

象征性优势

1。无状态、可扩展

存储在客户端的token是无状态的和可扩展的。如果不存储这种无状态和会话信息,负载均衡器就可以将用户信息从一个服务传输到另一个服务。在会话中存储经过身份验证的用户信息时,用户必须为每个请求向经过身份验证的服务器发送身份验证信息(称为会话关联)。大量用户可能导致拥塞。但是,不要担心使用token来解决这些问题,因为token包含您的凭据。

2。安全

通过在请求中发送token而不是cookie,可以避免CSRF(跨站点请求伪造)。即使客户端使用cookie来存储token,cookie也只是一种存储机制,而不是用于身份验证。减少会话,而不在会话中存储信息。token是紧急的,因此用户需要在一段时间后再次进行身份验证。无需等待token自动过期。token具有恢复操作。token终止可以使具有相同身份验证的特定token或token集失效。

三。可扩展性

token可用于创建与其他程序共享权限的程序。例如,您可以将非官方社交账户链接到自己的大账户(Fackbook或Twitter)。

通过此服务登录Twitter(使用此进程缓冲区)时,可以附加此缓冲区并将其发布到Twitter流。此token允许您为第三方应用程序提供可选权限。

4。跨平台和跨域

在提前讨论CORS(域之间的资源交换)和扩展应用程序和服务时,涉及到多个设备和应用程序。

此标准基于这样一个事实,即您可以在创建token时配置一些选项。稍后我们将记录内容,但标准用法反映在JSONWebtoken中。您可以将最近使用的应用程序和文档用作JSONWebtokens。它是一种兼容的语言。这意味着您可以真正地转换它以供以后使用,并成为一种身份验证机制。

象征性原则

base64加密1。有效载荷和标题信息、加密文本和加密表单标题文本。

点形成的两个密文连接到加密密钥服务器,生成hs256的签名。

三。文本后面的前两个密码是常规签名。最后一个表单返回到服务器token,请注意:

(1)此用户token到服务器(分为三部分,第一部分是密文加密负载、签名)。服务器将解密解析为第一部分(第一个密文)和base64。你可以知道签名算法。这是hs256的解决方案。

(2)服务器hs256操作执行签名签名,签名签名是在使用原始密钥将签名返回到密文(加密的标题文本+'+付费密文)之后获得的。如果token合法,则差异意味着原始文本已被修改。

(3)第2部分(密码有效负载)由base64确定,以确定解密的到期日期以及客户端是否知道授权期间的有效负载。如果token过期,则将此值与当前时间进行比较。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JWT(JSON Web Token)是一种用于身份验证和授权的开放标准(RFC 7519)。它是一种轻量级的安全传输方式,用于在网络应用间传递声明信息。JWT由三部分组成:头部(Header)、载荷(Payload)和签名(Signature)。 头部包含了关于令牌的元数据和加密算法的信息,通常由两部分组成:令牌类型(即JWT)和所使用的签名算法(如HMAC SHA256或RSA)。 载荷是JWT的主要内容,包含了一些声明信息,如用户ID、角色、权限等。载荷可以自定义,但建议只包含一些非敏感的信息,因为JWT是可解码的。 签名是对头部和载荷进行加密生成的,用于验证JWT的真实性和完整性。签名需要使用头部中指定的算法和密钥进行生成,接收方可以通过验证签名来确保JWT没有被篡改。 生成JWT token的过程如下: 1. 创建一个包含所需声明信息的JSON对象。 2. 使用Base64编码头部和载荷,形成两个字符串。 3. 将两个字符串用点号连接起来,形成一个未签名的JWT。 4. 使用指定的算法和密钥对未签名的JWT进行签名,生成签名字符串。 5. 将签名字符串添加到未签名的JWT末尾,形成最终的JWT token。 验证JWT token的过程如下: 1. 将接收到的JWT token按点号分割为头部、载荷和签名三部分。 2. 使用相同的算法和密钥对头部和载荷进行签名,生成一个新的签名字符串。 3. 将新生成的签名字符串与接收到的签名进行比较,如果相同,则说明JWT token是有效的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值