JWT:如何在密码或用户名错误 Django REST 上实现我的自定义错误消息
Posted
技术标签:
【中文标题】JWT:如何在密码或用户名错误 Django REST 上实现我的自定义错误消息【英文标题】:JWT: How do I implement my custom error message on password or username is wrong Django REST 【发布时间】:2021-09-09 21:22:59 【问题描述】:当用户在 Django Rest JWT 身份验证中输入错误密码时,我想实现我自己的自定义错误消息,目前默认错误消息是
"detail": "No active account found with the given credentials"
我继承了 Token 获取序列化器为
class TokenPairSerializer(TokenObtainSerializer):
default_error_messages =
'login_error': _('Username or Password does not matched .')
@classmethod
def get_token(cls, user):
return RefreshToken.for_user(user)
@classmethod
def get_user_type(cls, user):
if user.is_superuser:
return 'super_user'
elif user.is_student:
return 'student_user'
elif user.is_teacher:
return 'teacher_user'
def validate(self, attrs):
data = super().validate(attrs)
self.validate_user()
refresh = self.get_token(self.user)
我不知道我需要在哪里覆盖错误消息以获得响应
'login_error': _('Username or Password does not matched .')
任何帮助都会有所帮助。
【问题讨论】:
【参考方案1】:如果您只需要更改默认错误消息,请覆盖 TokenObtainSerializer default_error_message 字典,并自定义 no_active_account 键。
源码:here
到
class CustomTokenObtainSerializer(TokenObtainPairSerializer):
default_error_messages =
'no_active_account': 'Username or Password does not matched.'
【讨论】:
以上是关于JWT:如何在密码或用户名错误 Django REST 上实现我的自定义错误消息的主要内容,如果未能解决你的问题,请参考以下文章
当他从所有浏览器(Django-rest-auth,JWT)更改密码时如何注销用户?
django rest framework jwt 使用电子邮件和密码进行身份验证