Django2.0
先申請QQ互聯地址->注冊認證開發者->創建應用等待審核



下面用social_django第三方庫來實作第三方登錄
github地址,上面有使用說明
https://github.com/python-social-auth/social-app-django
(1) 安裝
pip install social-auth-app-django
(2)INSTALL_APP中配置
'social_django',
(3)生成表
只需要做migrate,因為migration的檔案已經生成好了,資料庫中多了五張表,存盤第三方登錄的資訊,
python manage.py migrate
(4) 添加到AUTHENTICATION_BACKENDS中
# settings.py
AUTHENTICATION_BACKENDS = (
'social_core.backends.weibo.WeiboOAuth2',
'social_core.backends.qq.QQOAuth2',
'social_core.backends.weixin.WeixinOAuth2',
'django.contrib.auth.backends.ModelBackend',
)
(5)配置url
# 第三方登錄

url('', include('social_django.urls', namespace='social'))
(6)settings里面context_processors
對于template中的用法,向context_processors中加入下面兩個
'social_django.context_processors.backends',
'social_django.context_processors.login_redirect',
(7)介面
qq互聯里配置回呼 :http://域名/complete/qq/、http://www.域名/complete/qq/或者http://127.0.0.1:8000/complete/qq/
在微博開放平臺里面設定回呼url,除錯的時候設定成本地的就可以了,上線的時候改成服務器的ip地址
(8)APP Secret和App key配置,settings里面
# 第三方登錄,里面的值是你的開放平臺對應的值
SOCIAL_AUTH_WEIBO_KEY = 'xxxxxxx'
SOCIAL_AUTH_WEIBO_SECRET = 'xxxxxx'
SOCIAL_AUTH_QQ_KEY = 'xxxxxxx'
SOCIAL_AUTH_QQ_SECRET = 'xxxxxxx'
SOCIAL_AUTH_WEIXIN_KEY = 'xxxxxxx'
SOCIAL_AUTH_WEIXIN_SECRET = 'xxxxxxx'
現在瀏覽器訪問:http://127.0.0.1:8000/login/weibo、http://www.域名/login/qq/、http://127.0.0.1:8000/login/qq/,就可以登錄了,我們還需要設定用戶微博、QQ登錄成功后跳轉到首頁

#登錄成功后跳轉到首頁
SOCIAL_AUTH_LOGIN_REDIRECT_URL = '/index/'
或者
SOCIAL_AUTH_LOGIN_REDIRECT_URL = '/users/index/' #這里需要配置該路徑能訪問
在apps下users里配置/users/index/的url路徑


#QQ第三方登錄回呼地址
url(r'^index/$',IndexView.as_view(),name='index'),
現在就登錄后就正常了,qq和微信的登錄,一樣的操作,只要去開放平臺注冊應用,其它跟微博登錄一樣設定就可以了,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/160769.html
標籤:Python
