【问题标题】:How to split Json Web Token as Header-Payload-Signature in Node.JS如何在 Node.JS 中将 Json Web Token 拆分为 Header-Payload-Signature
【发布时间】:2020-03-01 17:12:51
【问题描述】:

我有 node.js 应用程序。我使用 Json Web Token 进行授权。 JWT 包含三个部分,分别是 header、payload 和 signature。这些部分之间有一个点,如下图所示。

token = header.payload.signature  ||  token= xxxxx.yyyyyy.zzzzz

token = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

我需要从创建的标头令牌中获取有效负载值(中间部分)。我需要将令牌拆分为 3 部分(Header-Payload-Signature)。

我用这个方法:

const token= req.headers.authorization.split("")[1];
header,payload,signature = token.split('.')

但这不起作用。有没有其他的拆分方法或建议给我?

编辑:可以认为我有一个字符串(基本上是遵循命名约定的文件名)abc.def.ghi

我想在第一个 . (即一个点)

在 javascript 中,我该怎么做?

【问题讨论】:

    标签: javascript node.js rest authentication jwt


    【解决方案1】:

    你走在正确的道路上。您可以像这样拆分您的令牌:

    用于测试的基本 HTML:

    <div id="app">
    <p id="head"></p>
    <p id="pay"></p>
    <p id="sign"></p>
    </div>
    

    实际的javascript代码:

    var token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
    
    var [header, payload, signature] = token.split(".")
    
    document.getElementById("head").innerHTML= `header: ${header}`
    document.getElementById("pay").innerHTML =`payload: ${payload}`
    document.getElementById("sign").innerHTML= `signature: ${signature}`
    

    【讨论】:

    • 谢谢!我只是忘了放 [] 括号
    猜你喜欢
    • 2020-08-20
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    • 2016-12-20
    • 1970-01-01
    • 2016-11-24
    • 2019-11-24
    • 2014-05-22
    相关资源
    最近更新 更多