我希望为我的Django网站的用户创建尽可能简便的登录体验。我想要实现以下步骤:
- 向用户呈现登录界面
- 用户选择使用Facebook或Google登录
- 用户在外部网站中输入密码
- 用户可以作为已认证的用户与我的网站交互
好的,这部分很容易,只需安装django-allauth并进行配置。
但我还想提供使用本地用户登录的选项。这将有另一个步骤:
- 向用户呈现登录界面
- 用户选择注册
- 用户输入凭据
- 网站发送验证电子邮件
- 用户点击电子邮件链接后,可以作为已认证的用户与我的网站进行交互
好的,默认身份验证和allauth都可以实现。但现在是百万美元的问题。
如果他们更改了登录方式,我如何自动关联他们的Google、FB和本地帐户?
请注意,无论他们以何种方式登录,我都有他们的电子邮件地址。使用django-allauth是否可以实现?我知道可以通过用户干预来实现。今天的默认行为是拒绝登录,说电子邮件已经注册。
如果仅仅通过配置无法实现,我将接受给我一些方向的答案,以指导我应该对allauth代码进行哪些修改以支持此工作流程。
有很多原因需要这样做。用户会忘记他们用哪种方法进行身份验证,有时会使用 Google,有时使用 FB,有时使用本地用户帐户。我们已经拥有了许多本地用户帐户,社交帐户将是一个新功能。我希望用户能够保持他们的身份。我预想可以请求用户的好友列表,所以如果他们使用 Google 登录,我也想要他们的 FB 帐户。
这是一个爱好网站,没有很高的安全要求,请不要回答说这不是明智的安全实现。
以后,我会创建自定义用户模型,只使用电子邮件作为登录ID。但如果能让我自动关联具有所需用户名的默认用户模型的帐户,我会很高兴得到答案。
我正在使用 Django==1.5.4 和 django-allauth==0.13.0。