如何在 Javascript 中创建 JWT

How to create JWT in Javascript

本文关键字:创建 JWT Javascript      更新时间:2023-09-26

我是JWT的新手,我正在尝试用javascript创建一个简单的JWT,将其发送到控制器(使用web-api),在SQL数据库中检查它。 当我用谷歌搜索网络时,我发现了这样的例子:头

  {"typ":"JWT",
          "alg":"HS256"}

//索赔

{
  "Id": 445566,
  "name": "Meme Jhon",
  "password": "ticktack"
}
/

/和签名。

我想在 Javascript 中创建我的第一个 JWT,但我觉得缺少一些东西.. 完整的结构是什么? 仅从头部开始似乎不合逻辑(如上面的例子......我需要一个完整的示例或解释或指向完整示例的链接。谢谢

请参阅 JWT 规范以获得完整的理解。

总而言之,归根结底,这是一种以安全的方式在 2 方之间发送数据(声明)的方法:

JSON Web 令牌 (JWT) 是一种紧凑的、URL 安全的方法,用于表示要在两方之间传输的声明。

结构看起来像这样(直接从规范中取出):

eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9
.
eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFt
cGxlLmNvbS9pc19yb290Ijp0cnVlfQ
.
dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk
  • 3 个 base64url 编码段,用点分隔 ( .

    • 页眉
    • 声明/有效负载
    • 签名

服务器端生成的核心概念与签名有关 - 尽管如果您不想签名,因此"不安全的 JWT"(请参阅规范),那么我想您可以在客户端执行所有操作。

实现细节各不相同 - 例如,上述内容可以是某些HTTP请求的有效负载,身份验证方案(请参阅@M.M.答案中的链接)等。

谷歌钱包是规范实现的一个例子。

请参阅上面 @M.M. 提供的链接以获取图书馆