JsonWebToken публично читаемый? - PullRequest
0 голосов
/ 28 ноября 2018

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

Однако мне неудобно, чтобы кто-нибудь читал, что находится внутри (например, userMail, firstName,или, возможно, uniqueDeviceID).

Например, я создаю JWT следующим образом:

const authToken = jwt.sign(
        {
          firstname: "John",
          mail: "john.doe@gmail.com"
        },
        "mySecretSignature",
        { expiresIn: "1h" }
      );

Итак, я получаю токен.Отличные новости !Тем не менее, я думаю: «Хорошо, mySecretSignature должен оставаться в секрете, декодировать JWT и получать информацию внутри. Однако, когда я вставляю токен в https://jwt.io/,, он получает ВСЕ данные в полезной нагрузке, с илибез "" mySecretSignature "".

Мне интересно:

  • Можно ли скрыть полезную нагрузку и сделать ее доступной только для чтения моим сервером (с секретной подписью))?

  • Какой смысл «секретной подписи», если каждый может прочитать ваш JWT?

  • Когда я проверяю () на стороне сервераЯ не могу прочитать JWT, если я не предоставляю «secretSignature» (отличные новости, нет?) НО на JWT.io он работает каждый раз ...

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Чтобы ответить на ваши запросы

Можно ли скрыть полезную нагрузку и сделать ее доступной только для чтения моим сервером (с секретной подписью)?

Ну, вот и всене так, как работает токен JWT. "JWT предлагает автономный способ для безопасной передачи информации между сторонами в виде объекта JSON"

Вы можете сгенерировать токен на основе секретного ключа и использовать его для передачи данных.

Вы можете прочитать информацию о токене, но для внесения любых изменений в токен вам необходим секретный ключ.

Таким образом, добавляя безопасность при передаче информации.

Может быть, вы можете использовать любой алгоритм шифрования и дешифрования для вашего варианта использования.

Что такоесмысл «секретной подписи», если каждый может прочитать ваш JWT?

Любые важные детали не должны быть добавлены в токен.Вы можете прочитать guildelines здесь

Когда я проверяю () на стороне сервера, я не могу прочитать JWT, если я не предоставляю "secretSignature" (отличные новости, нет?) НО на JWT.io он работает каждый раз ...

Скажем так, на стороне сервера вы пытаетесь проверить JWT.И чтобы убедиться, что вам нужна «secretSignature», без этой проверки JWT не удастся.

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

отличные новости, нет?:)

Например: попробуйте этот сайт и декодируйте ваш токен, он будет работать.

Вы должны понимать разницу.

Вы всегда можете просмотреть информацию о токене, но не сможете изменить детали без «secretSignature»

0 голосов
/ 29 ноября 2018

jwt warning

Проверьте фотографию.Они уже сказали, что жетон читабелен.Так что если вы хотите, чтобы не читалось, сначала закодируйте свою электронную почту или что-то.после этого положить в полезную нагрузку.Так что это единственный способ.На самом деле, основная цель аутентификации - проверить, есть ли у пользователя доступ или нет.Jwt также является аутентификацией, но его дополнительная функция может передавать информацию через токен, но эта информация небезопасна.Спасибо.

...