django allauth-用于Django身份验证的python库
django allauth是集成的Django应用程序集,可解决身份验证,注册,帐户管理以及第三方(社交)帐户身份验证的问题。
基本原理
解决社会认证问题的大多数现有Django应用程序都专注于此。通常,您需要集成另一个应用程序以支持通过本地帐户进行身份验证。
这种方法将本地身份验证和社会身份验证分开。但是,在这两个世界中都有一些常见的场景需要处理。例如,由OpenID提供程序传递的电子邮件地址不能保证得到验证。因此,在将OpenID帐户挂接到本地帐户之前,必须先验证电子邮件地址,而电子邮件验证需要同时存在于两个世界中。
融合两个世界是一个乏味的过程。绝对不只是将一个社交身份验证应用程序和一个本地帐户注册应用程序添加到您的INSTALLED_APPS列表中。
这就是该项目开始的原因-提供一个完全集成的身份验证应用程序,该应用程序支持本地身份验证和社会身份验证,并且流程可以正常工作。
特征
支持的流程
注册本地帐户和社交帐户
将多个社交帐户连接到本地帐户
断开社交帐户的连接-如果仅保留本地帐户,则需要设置密码
可选的即时注册社交帐户-无需提问
电子邮件地址管理(多个电子邮件地址,设置主电子邮件地址)
密码遗忘流程
电子邮件地址验证流程
支持的提供商
Amazon (OAuth2)、AngelList (OAuth2)、Bitly (OAuth2)、Dropbox (OAuth)、Facebook (both OAuth2 and JS SDK)、Feedly (OAuth2)、Github (OAuth2)、Google (OAuth2)、Instagram (OAuth2)、LinkedIn (OAuth, OAuth2)、OpenId、Paypal (OAuth2)、Persona、SoundCloud (OAuth2)、Stack Exchange (OAuth2)、Twitch (OAuth2)、Twitter (OAuth)、Vimeo (OAuth)、VK (OAuth2)、Weibo (OAuth2)
细节
支持多种身份验证方案(例如,通过用户名或电子邮件登录),以及多种帐户验证策略(从无验证到电子邮件验证)。
所有访问令牌都被一致地存储,以便您可以发布墙更新等。
可插拔的注册表单,用于在注册过程中询问其他问题。
支持将多个社交帐户连接到Django用户帐户。
与Facebook,Twitter等类似的交互所需的消费者密钥和机密将通过Django管理员使用SocialApp模型在数据库中进行配置。
使用者密钥,令牌使用Django网站框架。这对于较大的多域项目特别有用,而且还允许在开发(localhost)和生产设置之间轻松切换,而不会弄乱您的设置和数据库。
模块安装
pip install django-allauth 或者直接下载django-allauth的python模块源文件。
示例
微信支持两种oauth2授权,一种用于开放平台,一种用于媒体平台,AUTHORIZE_URL是它们之间的唯一区别,您可以AUTHORIZE_URL在设置中指定;如果未设置任何AUTHORIZE_URL值,则默认情况下将支持开放平台open.weixin.qq.com/connect/qrconnect。
您可以选择指定要使用的其他范围。如果未SCOPE设置任何值,则snsapi_login默认使用(对于Open Platform Account,需要注册)。其他SCOPE选项是:snsapi_base,snsapi_userinfo。