我有node.js应用程序。我使用 Json Web Token 进行身份验证。 JWT 由三部分组成,分别是 header 、有效负载和签名。这些部分之间有一个点,如下所示。
token = header.payload.signature || token= xxxxx.yyyyyy.zzzzz
token = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
我需要从创建的 header token 中获取有效负载值(中间部分)。我需要将 token 分为 3 部分( header -有效负载-签名)。
我使用这个方法:
const token= req.headers.authorization.split("")[1];
header,payload,signature = token.split('.')
但这行不通。还有其他分割方法或建议吗?
编辑:可以认为我有一个字符串(基本上是遵循命名约定的文件名)abc.def.ghi
我想提取第一个 之前的子字符串。 (即一个点)
在 javascript 中,我该如何做到这一点?
最佳答案
你走在正确的道路上。您可以像这样分割您的 token :
仅用于测试的基本 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}`
关于javascript - 如何在 Node.JS 中将 Json Web Token 拆分为 Header-Payload-Signature,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58709483/