在客户端,我使用 Facebook 的 iOS SDK 登录并获得 Facebook ID 和访问令牌。
现在在 Django 方面,我想创建一个用户,使用 Facebook ID 作为主要标识符和其他字段,如访问令牌、名字、姓氏等(我将从服务器上的 Graph API 中检索最后两个字段边)。
我知道我必须创建一个自定义用户模型。
如果您希望存储与用户相关的信息,您可以使用与包含附加信息字段的模型的一对一关系。这种一对一的模型通常称为配置文件模型,因为它可能存储有关站点用户的非身份验证相关信息。
这还不够,因为我将使用 Facebook ID 和访问令牌进行身份验证。
这给我留下了两个选择:我可以像这样替换自定义用户模型:
AUTH_USER_MODEL = 'myapp.MyUser'
或者我可以继承 AbstractUser:
如果您对 Django 的 User 模型完全满意并且只想添加一些额外的配置文件信息,您可以简单地继承 django.contrib.auth.models.AbstractUser 并添加您的自定义配置文件字段。
但这听起来也不完全正确。这个设计技巧也让我更加困惑。
模型设计注意事项 在处理与自定义用户模型中的身份验证不直接相关的信息之前,请仔细考虑。将特定于应用程序的用户信息存储在与用户模型有关系的模型中可能会更好。
实现我正在尝试做的事情的最佳方法是什么?