Я следовал некоторым урокам по django и нашел некоторые неясные коды. Этот фрагмент взят из пользовательской модели, в проекте для аутентификации которой используется jwt.
Как я прокомментировал во фрагменте, я не могу заметить причину, почему они сначала кодируют данные и снова декодируют их. Я думал, что этот тип паттерна не только специфичен для этого урока, но и довольно общий паттерн. Может ли кто-нибудь объяснить мне, пожалуйста?
def _generate_jwt_token(self):
"""
Generates a JSON Web Token that stores this user's ID and
has an expiry date set to 60 days into the future.
"""
dt = datetime.now() + timedelta(days=60)
token = jwt.encode({ #first encode here
'id': self.pk,
'exp': int(dt.strftime('%s'))
}, settings.SECRET_KEY, algorithm='HS256')
return token.decode('utf-8') #returns decoded object