Django openid, oauth认证。支持以下网站:- http://google.com - http://yandex.ru - http://vkontakte.ru - http://facebook.com - http://twitter.com 以及自定义openid和oauth提供者
项目描述
Django netauth 是一个django应用程序,允许通过OpenID/OAuth/Google/Twitter/Facebook/Vkontakte对用户进行认证。示例项目部署在 http://netauth.node42.org/
很抱歉,现在不再支持django-netauth。推荐使用django-socialauth。
要求
python >= 2.5
django >= 1.2
python-openid
oauth2
安装
Django netauth 应使用pip安装
pip install django-netauth
设置
将‘netauth’添加到INSTALLED_APPS
INSTALLED_APPS += ( 'netauth', )
将netauth urls添加到基础urls
url('auth/', include( 'netauth.urls')),
将netauth后端添加到AUTHENTICATION_BACKENDS
AUTHENTICATION_BACKENDS += ( 'netauth.auth.NetBackend', )
使用django syncdb命令同步数据库
./manage.py syncdb
请参阅以下服务设置。
使用netauth
使用URL ‘/auth/login’ 作为您的网站的登录点
使用模板标签 ‘netauth_widget’
创建自定义界面
额外字段
为了填充可能由您的用户配置文件要求填写的额外字段,您需要在项目的settings.py中设置一些变量。
变量的名称应该是后端的大写名称加 “_PROFILE_MAPPING”。例如:GOOGLE_PROFILE_MAPPING, TWITTER_PROFILE_MAPPING, 等。
该变量的值必须是字典,包含提供者侧的字段名称及其值必须是您的表单字段的名称。例如
TWITTER_PROFILE_MAPPING = { ‘username’: ‘screen_name’, }
在这里,您可以看到“screen_name”是您从Twitter请求的内容,在您的EXTRA_FORM中,您将在“username”键下看到这个值。这是因为每种认证方法都可以为它的数据提供不同的名称,您需要统一它们。
您也可以覆盖EXTRA_FORM本身,并将NETAUTH_EXTRA_FORM变量设置为自定义表单的路径。别忘了在这个表单中实现save方法。
前往 https://#/developers/createapp.php 创建应用程序
在您的设置文件中设置FACEBOOK_APPLICATION_ID和FACEBOOK_APPLICATION_SECRET(不是密钥)
前往 http://twitter.com/apps/new 创建应用程序,应用程序类型:浏览器,回调URL:http://your_domain/auth/complete/
在您的设置文件中设置TWITTER_CONSUMER_KEY和TWITTER_CONSUMER_SECRET
Yandex
前往 http://oauth.yandex.ru/client/new 创建应用程序,回调URL:http://your_domain/auth/ya_proxy/
在您的设置文件中添加YANDEX_APPLICATION_ID
Vkontakte
在您的设置文件中添加VKONTAKTE_APPLICATION_ID和VKONTAKTE_APPLICATION_SECRET
变更
如果您是从之前的scss版本升级的,请确保您已经阅读了以下文档
注意
您需要根据django文档中的描述设置messages框架
错误跟踪器
如果您有任何建议、错误报告或不满,请向https://github.com/klen/django-netauth/issues的issue tracker报告
贡献
django-netauth的开发在github上发生:https://github.com/klen/django-netauth
贡献者
klen (Kirill Klenov)
ilblackdragon (Ilya)