本文作者:魏泯
博客源地址:https://www.cnblogs.com/Asterism-2012/
在很多博友的博客中學習了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;
有句話驚醒着我,你所學會的東西,到最后你要把它全部傳授給他人,你所擁有 的,你要把它奉獻給他人。
而不是你自己獨享,人不僅僅是為了自己而活。
——愛因斯坦沒說過這話。
愚者笑我,賢者會傾聽我的話。