Сериализация и синхронизированные веб-токены в python flask - PullRequest
0 голосов
/ 15 марта 2020

Здравствуйте, я изо всех сил пытаюсь понять следующий пример.

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

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

Я следую руководству, в котором предлагается использовать модуль python с именем itsdangerous.

. Мне дали следующее код в качестве простого примера из учебного пособия, чтобы понять, как работает модуль перед развертыванием на моем веб-сайте:

from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
s = Serializer('secret_key',30)
token = s.dumps({'usr_id': 1}).decode('utf-8')
s.loads(token)

Теперь, если я запускаю это, вот что происходит:

Я использую s создать токен, который позволит мне взять словарь {'usr_id':1}, тогда, если я запусту s.loads(token) в течение 30 секунд, я смогу вернуть этот словарь {'usr_id':1} в противном случае я получу ошибку.

Может кто-нибудь объяснить (просто для начинающего) что здесь происходит?

Я не совсем понимаю, что происходит, и я не вижу, что делает аргумент secret_key для Serializer?

Также, если кто-то может Расскажите, как такой код может помочь мне, позволяя пользователям получить электронное письмо для сброса пароля, что было бы здорово. Спасибо!

1 Ответ

0 голосов
/ 16 марта 2020

Так что этот тип сериализации, предоставляемый его опасной библиотекой, JSON основан на Web Token. Для создания JSON веб-токена вам понадобится секретный ключ , который является подписью, подтверждающей, что информация, которую токенизировал, была предоставлена ​​вами и может быть отредактирована только с этой подписью.

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

В вашем случае было бы полезно отправить токен с истекающим сроком действия - скажем, однажды - на электронную почту пользователя, чтобы доказать, что у него есть разрешение на изменение пароля. , И через один день он станет недействительным, поэтому вы не поставите под угрозу свою систему.

Что такое структура JSON Web Token?

В ее компактном виде form, JSON Веб-токены состоят из трех частей, разделенных точками (.):

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

Полезная нагрузка: здесь хранится информация и время истечения.

Подпись: подпись используется для проверки того, что сообщение не было ' t изменилось по пути, и, в случае токенов, подписанных секретным ключом, он также может проверить, является ли отправитель JWT тем, о ком он говорит.

Поэтому JWT обычно выглядит следующим образом. xxxxx.yyyyy.zzzzz

Вы можете посмотреть, что находится внутри JWT, вставив его по ссылке ниже: https://jwt.io/

Подробнее о : https://jwt.io/introduction/

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