当前,我正在使用node作为后端,并期待将我的项目转移到django-rest-framework。在节点中,我使用了firebase-auth和MySQL,并有一个名为FIREBASE_USERS
的表,其中包含email
和firebase_uid
字段。我当时正在考虑为drf构建自己的自定义身份验证,但无法弄清楚使用我的FIREBASE_USERS
表而不是django Users
模型。我读到django提供了设置。 AUTH_USER_MODEL
来设置您自己的自定义模型,但是文档使用AbstractUser
类来创建它,我也不想弄乱我的表,因为这些表也用于其他项目中。任何建议,将不胜感激。
答案 0 :(得分:0)
您的自定义用户模型需要包含(1)中所述的属性。 AbstractBaseUser
是实现此目的的捷径。覆盖Meta.db_table
以匹配您的表名。如果这还不够,请考虑按照(2)中所述创建自己的身份验证后端,并使用您的Firebase用户的外键创建django用户。但是,为了让Django正常运行,您的用户模型需要具有(1)中所述的方法。
也许(3)解决了您的问题?
(1)https://docs.djangoproject.com/en/2.2/topics/auth/customizing/#django.contrib.auth.models.CustomUser
(2)https://docs.djangoproject.com/en/2.2/topics/auth/customizing/#writing-an-authentication-backend