def authenticate_credentials(self, payload):
"""
Returns an active user that matches the payload's user id and token.
"""
User = get_user_model()
username = jwt_get_username_from_payload(payload)
token = jwt_get_knox_token_from_payload(payload)
if not username or not token:
msg = _('Invalid payload.')
raise exceptions.AuthenticationFailed(msg)
try:
user = User.objects.get_by_natural_key(username)
except User.DoesNotExist:
msg = _('Invalid signature.')
raise exceptions.AuthenticationFailed(msg)
if not user.is_active:
msg = _('User inactive or deleted.')
raise exceptions.AuthenticationFailed(msg)
return (user, self.ensure_valid_auth_token(user, token))
评论列表
文章目录