Django第三方登录

主要翻译自https://django-social-auth.readthedocs.org/en/latest/index.html,适当地方加上自己的理解,有的地方有增删。

第一步:安装依赖

pip install django-social-auth

(或者采用easy_install安装,或者clone之后配置/setup)参见https://django-social-auth.readthedocs.org/en/latest/installing.html#get-a-copy

安装之后,进行完必要的settings配置之后run server,你会发现有错误!wtf,原来是一并安装的最新版python-social-auth对不上。

git checkout tags/v0.1.9

sudo python setup.py install

取出这个版本之后,安装,and voila!

第二步,配置

在settings.py中加入

INSTALLED_APPS = (
    ...
    'social_auth'
)

加入后,同步数据库。(social_auth本身自带了一些models)

./manage.py syncdb

然后再加上要支持的第三方网站

AUTHENTICATION_BACKENDS = (
    'social_auth.backends.twitter.TwitterBackend',
    'social_auth.backends.facebook.FacebookBackend',
    'social_auth.backends.contrib.douban.Douban2Backend',
    'social_auth.backends.contrib.qq.QQBackend',
    'social_auth.backends.contrib.weibo.WeiboBackend',
     #注意,这里的QQ可能还有点问题,待会再说。参见⬇️
     #http://segmentfault.com/blog/duoduo3_69/1190000000635319
    'django.contrib.auth.backends.ModelBackend',
)

上面的最后一句不要丢了谢谢。

然后!再urls文件中加入

urlpatterns = patterns('',
    ...
    url(r'', include('social_auth.urls')),
)

然后!就是去第三方网站申请key和secret了。然后填进来(settings.py)

TWITTER_CONSUMER_KEY         = ''
TWITTER_CONSUMER_SECRET      = ''

然后写上重定向的URL(settings.py)

LOGIN_URL          = '/login-form/'
LOGIN_REDIRECT_URL = '/logged-in/'
LOGIN_ERROR_URL    = '/login-error/'

如果需要定制跳转链接,那么必须跟LOGIN_URL不同:

SOCIAL_AUTH_LOGIN_REDIRECT_URL = '/another-login-url/'

新注册的用户跳转链接可以这么定义

SOCIAL_AUTH_NEW_USER_REDIRECT_URL = '/new-users-redirect-url/'

新关联的用户可以这么定义:

SOCIAL_AUTH_NEW_ASSOCIATION_REDIRECT_URL = '/new-association-redirect-url/'

账户断开连接:

SOCIAL_AUTH_DISCONNECT_REDIRECT_URL = '/account-disconnected-redirect-url/'

用户取消某个关联之后,跳转如下:

SOCIAL_AUTH_BACKEND_ERROR_URL = '/new-error-url/'

验证和关联账户的跳转地址写长点,可以防止冲突:

SOCIAL_AUTH_COMPLETE_URL_NAME  = 'socialauth_complete'
SOCIAL_AUTH_ASSOCIATE_URL_NAME = 'socialauth_associate_complete'

若定义了inactive,那么这类用户可以做如下跳转:

SOCIAL_AUTH_INACTIVE_USER_URL = '...'#默认执行LOGIN_ERROR_URL



然后!如果要覆盖原来的user model,那么要先申明一下:

SOCIAL_AUTH_USER_MODEL = 'myapp.CustomUser'


有的数据库会强加一个字段值的限制,这个条件有可能会影响UserSocialAuth字段:

SOCIAL_AUTH_UID_LENGTH = <int>

<int>改为233(mysql),或者767(InnoDB


Association and Nonce keys:(这部分不懂)

其他的配置不是很重要。如有需要请查询官方文档,(在最上面贴出了),或者看不懂的留言告诉我。


转载于:https://my.oschina.net/guesswhoamI/blog/359743

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值