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


本文作者:魏泯

博客源地址: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;

 

有句話驚醒着我,你所學會的東西,到最后你要把它全部傳授給他人,你所擁有 的,你要把它奉獻給他人。

 

不是你自己獨享,人不僅僅是為了自己而活

 

——愛因斯坦沒說過這話。

 

愚者笑我,賢者會傾聽我的話。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM