Как разделить веб-токен Json как подпись заголовка-полезной нагрузки в Node.JS - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть приложение node.js. Я использую Json Web Token для аутентификации. JWT состоит из трех частей: заголовок, полезная нагрузка и подпись. Между этими частями есть точка, как показано ниже.

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, как я могу это сделать?

1 Ответ

1 голос
/ 05 ноября 2019

Вы на правильном пути. Вы можете разделить свой токен следующим образом:

Базовый 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}`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...