1. 程式人生 > >Django開發social-auth-app-django 第三方登陸-魏泯

Django開發social-auth-app-django 第三方登陸-魏泯

在很多博友的部落格中學習了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;