Как просмотреть данные, хранящиеся в JWT? Использование auth0 и express-jwt

Сейчас я верю, что у меня все настроено правильно. Auth0 сохраняет jwt клиенту, который затем использует его для будущих запросов. Я использую экспресс-JWT для проверки токена. Из чтения документов Auth0 я думаю, что мне нужен секрет клиента (когда я использую его для декодирования jwt, я получаю странную ошибку: UnauthorizedError: error:0906D06C:PEM routines:PEM_read_bio:no start line) Так что мне просто интересно, откуда взялся этот секретный ключ? Спасибо

2 ответа

Решение

Основываясь на комментарии из OP, чтобы прочитать значения тела JWT, просто base64 расшифруйте его. Вы можете использовать библиотеку для этого, например, jwt- decode для nodejs.

Смотрите пример использования ниже (взят из README для lib):

var jwtDecode = require('jwt-decode');
var token = 'eyJ0eXAiO.../// jwt token';

var decoded = jwtDecode(token);
console.log(decoded);

/* prints:
 * { foo: "bar",
 *   exp: 1393286893,
 *   iat: 1393268893  }
 */

Заявки, которые будут в вашем токене (здесь, ссылаясь на идентификационный токен), зависят от того, что scope Вы предоставили, когда вы заверяли. Например, если вы используете scope: openid profile email Вы получите все, что вернулось в вашем токене.

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

Если вы используете промежуточное программное обеспечение express-jwt, то полезная нагрузка по умолчанию сохраняется в объекте запроса, и вы можете получить к нему доступ следующим образом request.user

Пример для конечной точки:

//jwtMiddleware is express-jwt middleware
app.get('/', jwtMiddleware, function (req, res) {
  console.log(req.user);
  res.send('hello world');
});
Другие вопросы по тегам