如何在djangoreostframework-simplejwt中使用电子邮件代替用户名?

列德詹戈

当我获得访问令牌并使用djangoreostframework-simplejwt刷新令牌时,我将使用电子邮件代替用户名。因此,编写代码后,我可以访问浏览器并确认用户名字段已重命名为email。但是,当我在email字段中发布用户的电子邮件时,出现以下错误。

“ detail”:“未找到具有给定凭据的活动帐户”

您能告诉我代码有什么问题吗?这是我的代码。

Serializers.py

from rest_framework_simplejwt.serializers import TokenObtainSerializer
from django.contrib.auth.models import User

class EmailTokenObtainSerializer(TokenObtainSerializer):
    username_field = User.EMAIL_FIELD


class CustomTokenObtainPairSerializer(EmailTokenObtainSerializer):
    @classmethod
    def get_token(cls, user):
        return RefreshToken.for_user(user)

    def validate(self, attrs):
        data = super().validate(attrs)

        refresh = self.get_token(self.user)

        data["refresh"] = str(refresh)
        data["access"] = str(refresh.access_token)

        return data

views.py

from rest_framework_simplejwt.views import TokenObtainPairView
from .serializers import CustomTokenObtainPairSerializer

class EmailTokenObtainPairView(TokenObtainPairView):
    serializer_class = CustomTokenObtainPairSerializer

谢谢

Okkie

您重写类CustomTokenObtainPairSerializer的validate函数。在Validate函数中,调用validate super()。在TokenObtainSerializer中,validate函数使用Django authenticate函数。该操作使用用户名和密码来验证用户。您可能想要创建一个使用电子邮件进行身份验证的自定义身份验证后端。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在PHP的LDAP身份验证中,如何使用电子邮件代替用户名?

来自分类Dev

如何在Django Rest Framework中使用电子邮件而不是用户名注册用户

来自分类Dev

ASP.NET身份使用电子邮件代替用户名

来自分类Dev

Laravel使用电子邮件代替用户名登录

来自分类Dev

Laravel使用电子邮件代替用户名登录

来自分类Dev

如何在Firebase中使用用户名,电子邮件和密码创建新用户?

来自分类Dev

如何在Firebase中使用用户名,电子邮件和密码创建新用户?

来自分类Dev

如何在ASP.Net Web窗体身份中使用“用户名”而不是“电子邮件地址”登录

来自分类Dev

Laravel 5-如何使用带有用户名的基本身份验证代替电子邮件?

来自分类Dev

如何创建一个会话,当一个人使用电子邮件和密码登录时显示用户的用户名

来自分类Dev

Grail的Spring安全性:使用电子邮件代替用户名在SwitchUserFilter中切换用户

来自分类Dev

如何使用解析云从用户Pointer检索用户名,电子邮件等

来自分类Dev

如何使用Cognito身份ID获取用户属性(用户名,电子邮件等)

来自分类Dev

如何使用解析云从用户Pointer检索用户名,电子邮件等

来自分类Dev

如何允许用户使用php中的用户名和电子邮件登录?

来自分类Dev

如何确保唯一的电子邮件,用户名将使用Mongoose进入MongoDB

来自分类Dev

如何确保唯一的电子邮件,用户名将使用Mongoose进入MongoDB

来自分类Dev

如何使用 SESSION 检索登录的用户名、电子邮件?到网站

来自分类Dev

如何在git中更新全局配置(用户名和用户电子邮件)?

来自分类Dev

如何在没有任何电子邮件/用户名的情况下将我的电子邮件/用户名添加到旧提交中?

来自分类Dev

如何在Java中解码访问令牌并获取用户名和电子邮件?

来自分类Dev

如何在Spring security中通过电子邮件而不是用户名登录

来自分类Dev

使用电子邮件或用户名登录

来自分类Dev

在Django中使用电子邮件地址或用户名登录用户

来自分类Dev

您如何编辑用户,该用户的电子邮件用户名包含连字符?

来自分类Dev

Picketlink-如何实现同时接受使用用户名或电子邮件的身份验证

来自分类Dev

如何使用 msg.send() 在 django 中的 html 电子邮件模板中传递用户名

来自分类Dev

如何使用 SSAS 表格模型中的 DAX 公式从电子邮件地址获取用户名

来自分类Dev

使用Node.js时如何在SendGrid中使用电子邮件模板

Related 相关文章

  1. 1

    在PHP的LDAP身份验证中,如何使用电子邮件代替用户名?

  2. 2

    如何在Django Rest Framework中使用电子邮件而不是用户名注册用户

  3. 3

    ASP.NET身份使用电子邮件代替用户名

  4. 4

    Laravel使用电子邮件代替用户名登录

  5. 5

    Laravel使用电子邮件代替用户名登录

  6. 6

    如何在Firebase中使用用户名,电子邮件和密码创建新用户?

  7. 7

    如何在Firebase中使用用户名,电子邮件和密码创建新用户?

  8. 8

    如何在ASP.Net Web窗体身份中使用“用户名”而不是“电子邮件地址”登录

  9. 9

    Laravel 5-如何使用带有用户名的基本身份验证代替电子邮件?

  10. 10

    如何创建一个会话,当一个人使用电子邮件和密码登录时显示用户的用户名

  11. 11

    Grail的Spring安全性:使用电子邮件代替用户名在SwitchUserFilter中切换用户

  12. 12

    如何使用解析云从用户Pointer检索用户名,电子邮件等

  13. 13

    如何使用Cognito身份ID获取用户属性(用户名,电子邮件等)

  14. 14

    如何使用解析云从用户Pointer检索用户名,电子邮件等

  15. 15

    如何允许用户使用php中的用户名和电子邮件登录?

  16. 16

    如何确保唯一的电子邮件,用户名将使用Mongoose进入MongoDB

  17. 17

    如何确保唯一的电子邮件,用户名将使用Mongoose进入MongoDB

  18. 18

    如何使用 SESSION 检索登录的用户名、电子邮件?到网站

  19. 19

    如何在git中更新全局配置(用户名和用户电子邮件)?

  20. 20

    如何在没有任何电子邮件/用户名的情况下将我的电子邮件/用户名添加到旧提交中?

  21. 21

    如何在Java中解码访问令牌并获取用户名和电子邮件?

  22. 22

    如何在Spring security中通过电子邮件而不是用户名登录

  23. 23

    使用电子邮件或用户名登录

  24. 24

    在Django中使用电子邮件地址或用户名登录用户

  25. 25

    您如何编辑用户,该用户的电子邮件用户名包含连字符?

  26. 26

    Picketlink-如何实现同时接受使用用户名或电子邮件的身份验证

  27. 27

    如何使用 msg.send() 在 django 中的 html 电子邮件模板中传递用户名

  28. 28

    如何使用 SSAS 表格模型中的 DAX 公式从电子邮件地址获取用户名

  29. 29

    使用Node.js时如何在SendGrid中使用电子邮件模板

热门标签

归档