Django開發social-auth-app-django 第三方登陸-魏泯
阿新 • • 發佈:2018-11-27
在很多博友的部落格中學習了social-auth-app-django這個模組。發現很多事情還是要自己操作之後才能得到經驗。我這裡做一些補充。
基於OAuth2:https://oauth.net/2/(官方網址)
1. 使用social-auth-app-djang這個第三方包之前先安裝::
pip install social-auth-app-django
2. 配置settings.py 檔案:安裝應用
INSTALLED_APPS = [ ... 'social_django', ]
3. 配置mysql資料庫連線就可以直接遷移。因為在social_django的原始碼中可以看到已經為我們生成好了遷移檔案。
4. 檢視mysql(可選項),這鐘情況是已經成功。多了幾個social為我們建立的表。social美式音標:[ˈsoʊʃl]
5. 重寫Django的認證後端,新增配置資訊字串的本質是呼叫檔案路徑。
# 重寫django的認證後端,需要配置 AUTHENTICATION_BACKENDS = [
'social_core.backends.weibo.WeiboOAuth2', # 新浪微博登陸
'social_core.backends.amazon.amazonOAuth2', # 亞馬遜登陸
]
原始碼中的位置,以亞馬遜為例,都是一樣的路徑規律。
6. 配置主路由urls.py
urlpatterns = [ url(r'^', include('social_django.urls')), ]
7. 設定模板引擎 settings.py
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', # 新增backends與登陸重定向模板 'social_django.context_processors.backends', 'social_django.context_processors.login_redirect', ], }, }, ]
8. 配置第三方所需要的常量
# 配置微博開放平臺授權 # SOCIAL_AUTH_要使用登入模組的名稱大小_KEY,其他如QQ相同 SOCIAL_AUTH_WEIBO_KEY = '這裡填App Key' SOCIAL_AUTH_WEIBO_SECRET = '這裡填App Secret' # 登入成功後跳轉頁面 SOCIAL_AUTH_LOGIN_REDIRECT_URL = '這裡填登陸後跳轉的URL,比如主頁'
9. 查看回調URL如何設定
回撥URL的內部實現可以看一下原始碼,暫時不用更改。.\\social_django\urls.py
配置回撥URL,授權取消回撥頁填為空。
10. 請求這個URL http://域名/login/使用模組名稱/ 如 http://127.0.0.1:8000/login/weibo/
最後,查看錶內容,有了新的內容。
感謝博主@林貴秀,@lvye001;