django openid,oauth身份验证。支持下一个站点:-http://google.com-http://yandex.ru-http://vkontakte.ru-http://facebook.com-http://twitter.com和自定义openid和oauth提供程序
django-netauth的Python项目详细描述
django netauth是django应用程序,允许通过openid/oauth/google/twitter/facebook/vkontakte对用户进行身份验证。 部署在http://netauth.node42.org/
上的示例项目抱歉,现在不支持django netauth。建议使用django socialauth。
内容
Requirements
- python>;=2.5
- django>;=1.2
- python openid
- OAuth2
Setup
将“netauth”添加到已安装的应用程序中
INSTALLED_APPS += ( 'netauth', )
将netauth url添加到基本url
url('auth/', include( 'netauth.urls')),
将netauth后端添加到身份验证后端
AUTHENTICATION_BACKENDS += ( 'netauth.auth.NetBackend', )
使用django syncdb命令同步数据库
./manage.py syncdb
请参阅下面的服务设置。
Use netauth
- 在您的站点中使用url'/auth/login'作为登录点
- 使用模板标记“netauth_widget”
- 创建自定义界面
Extra fields
为了填充用户配置文件可能需要的额外字段,需要在项目的settings.py中设置两个变量。
变量名应为backend+的大写名称“\u profile\u mapping”。例如:google_profile_mapping、twitter_profile_mapping等。
此变量的值必须是提供程序端具有字段名称的字典,并且其值必须是表单字段的名称。例如:
twitter_profile_mapping={'用户名':'屏幕名称',}
在这里你可以看到“screen_name”是你在twitter上要求的,在你的附加表单中,你会在“username”键下看到这个值。这是因为每个身份验证方法都可以为其数据提供不同的名称,您需要统一它。
此外,还可以重写extra_form本身,并将netauth_extra_form变量的值设置为自定义表单的路径。不要忘记在这个表单中实现save方法。
- 转到http://www.facebook.com/developers/createapp.php并创建应用程序
- 在设置文件中设置Facebook应用程序ID和Facebook应用程序机密(非密钥)
- 转到http://twitter.com/apps/new并创建应用程序 应用程序类型:Browser 回调URL:^{TT2}$
- 在设置文件中设置twitter_consumer_key、twitter_consumer_secret
Yandex
- 转到http://oauth.yandex.ru/client/new并创建应用程序 回调URL:^{TT3}$
- 在设置文件中添加yandex应用程序ID
Vkontakte
- 转到http://vkontakte.ru/apps.php?act=add&site=1并创建应用程序
- 在设置文件中添加vkontakte_application_id和vkontakte_application_secret
Note
您需要按照django文档中的说明设置messages-framework
Bug tracker
如果您有任何建议、错误报告或 烦恼请向问题追踪者报告 在https://github.com/klen/django-netauth/issues
Contributing
django netauth的开发发生在github:https://github.com/klen/django-netauth
Contributors
- klen(基里尔·克莱诺夫)
- ilblackdragon(伊利亚)