Как изменить заголовок jsonwebtoken в node.js - PullRequest
0 голосов
/ 03 июля 2018

Мне нужен токен для аутентификации на сервере, я использую jsonwebtoken, но он будет работать, только если заголовок токена равен

{
  "alg": "RS256"
}

а не

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

и jsonwebtoken заголовок по умолчанию - второй, я попытался установить заголовок с параметром, как описано здесь https://github.com/auth0/node-jsonwebtoken, но нет примера, так что, возможно, я делаю это неправильно, но опция noTimestamp работает так... В документе есть такая строка: «Заголовок можно настроить с помощью объекта options.header». Я думаю, что суть, которую я не понимаю.

jwt.sign(payload,
      pvtKey,
      { algorithm: 'RS256', noTimestamp : true, header: {"alg": "RS256"} }, function(err, token) {
        if (err) {
          return res.status(500).send("Error1: "+ err);
        }
        console.log("Created token: " + token);
      });

но это ничего не меняет, так что если кто-то знает, как устанавливать заголовки?

спасибо заранее

Ответы [ 2 ]

0 голосов
/ 10 июня 2019
var h  = {"alg":"PS256", "typ":"unknown", "kid":"5FZT6gTLM5wEoSGn3eW0Q8zCPsQ"};
var i  = 'ClientId';   
var s  = 'ClientId';   
var a  = 'bla';
var signOptions = {
 issuer:  i,
 header:  h,
 subject:  s,
 audience:  a,
 expiresIn:  "1h"
};

var token = jwt.sign(payload, privateKEY, signOptions);

Результаты в этом заголовке:

{
  "alg": "PS256",
  "typ": "unknown",
  "kid": "5FZT6gTLM5wEoSGn3eW0Q8zCPsQ"
}
0 голосов
/ 03 июля 2018

Функция jwt.sign() создает заголовок по умолчанию, например:

{
  "alg": <algorithm>,
  "typ": "JWT"
}

Если присутствует параметр header, будет создан заголовок, который содержит дополнительные пары ключ / значение в соответствии с параметром. Если параметр содержит другое значение для typ или alg, будет взято значение из параметра. В следующем примере я перезаписываю значение typ и добавляю дополнительный ключ x:

jwt.sign(payload, pvtKey,
    { algorithm: 'RS256', noTimestamp : true, header: {"typ":"unknown", "x":"y"} })

Результат этого заголовка:

{
  "alg": "RS256",
  "typ": "unknown",
  "x": "y"
}

Вывод: он работает, вы можете настроить свой заголовок, но вы не можете избавиться от двух стандартных значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...