JWT for初学者ð
#网络开发人员 #node #jwt #backend

在这篇文章中,我们将讨论有关jwt-web-token。

简介
JWT是一种紧凑的URL安全手段,代表了两方之间的主张。它允许您将信息安全地在客户端和服务器之间作为JSON对象进行。 JWT通常用于身份验证和授权目的。

更好地了解JWT我建议您了解HTTP的工作原理和HTTP的结构。

JWT的主要部分要理解。

JWT有两个主要部分要理解。

  1. 标志()
  2. 验证()。

符号()

jwt.sign()用于在服务器中生成令牌。它接受两个参数。

jwt.sign(有效载荷,secret_key)。

令牌不过是由符号函数生成的长哈希字符串。该字符串由DOT分隔的三个部分组成[。]

{ headers.payload.secretket}

为了更好地理解上述字符串,请参阅以下代码,然后阅读说明。

const payload = { userId: 1234, username: 'john' };
const secretKey = 'your-secret-key';
const token = jwt.sign(payload, secretKey);

在上面的代码有效载荷中是一个对象,包括用户和用户名的ID。

您还可以在有效载荷中发送角色和权限对象以实现RBAC。

secret-key 是一个长长的复杂字符串,该字符串秘密保存在服务器中,只有该服务器已知。

jwt.sign()函数将与req.headers一起接受这些参数,并将数据放入字符串中。如下

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6I
kpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

SRTRING将由服务器返回并保存在浏览器的本地。稍后在登录服务器中将获得该字符串验证字符串,如果字符串有效,请允许用户登录应用程序。

核实()

通过jwt.verify()函数来验证客户收到的令牌的过程。语法如下
jwt.verify(token,secret_key,(err,decode))

重要的是要了解令牌来自客户端又称浏览器本地存储,秘密键来自服务器,它返回回调,包括err或解码有效载荷。

这项工作是如何获得令牌,其中包括 headers.payload.sercert_key

如果Hashed秘密密钥等于服务器中存在的密钥,则将对其进行身份验证。

请参见下面的
jwt