1. 程式人生 > >django-allauth:第三方賬戶授權登入(以百度賬號為例)

django-allauth:第三方賬戶授權登入(以百度賬號為例)

文章轉載於:https://mp.weixin.qq.com/s/z0bZ6XKFUZVd-eyE-tbrqA

django-allauth 是一個能夠解決你的註冊和認證需求的、可重用的 Django 應用。無論你需要構建本地註冊系統還是社交賬戶註冊系統,django-allauth 都能夠幫你做到。今天我們將演示如何使用django-allauth實現第三方賬戶登入。

由於我們將使用百度第三方授權登入,所以請把服務提供商providers.baidu加入到專案配置檔案settings.py中INSATLLED_APP裡去。


INSTALLED_APPS = [
    ...
    'allauth.socialaccount.providers.baidu',
]

這時當你訪問/accounts/login/, 你會發現多了個baidu的登入選項。

當然這時你點選Baidu連結登入,肯定會出現錯誤,因為我們還沒有得到baidu的授權,獲取它的API key和secret key。

獲取Baidu的API Key和Secret Key

登入百度開發者中心http://developer.baidu.com/,建立一個專案(名字自取),百度會自動給你分配API Key和Secret Key(如下圖所示),你稍後需要把他們輸入到django後臺admin裡去。

應用建立好後,你還需要點選安全設定,設定回撥URL。這樣當百度授權登入完成後,可以跳轉回自己的網站。回撥URL地是: http://127.0.0.1:8000/accounts/baidu/login/callback/, 如下圖所示:

在admin輸入API Key和Secret Key

在django的admin點選socialapplications, 輸入baidu提供的API key(也被稱為client id)和secret key即可。如下圖所示:

檢視效果

現在當你點選baidu連結登陸時,你會看到如下頁面:

如果你的使用者名稱和密碼正確,你會跳轉到如下頁面, 實現成功登入。你會被要求重置你的使用者名稱並提供郵箱。這樣你就成功把baidu的客戶轉化成你自己的使用者啦。

在你提供郵箱和使用者名稱後,你就會被自動跳轉到個人Profile頁面了,如下所示:

關於django-allauth的幾篇部落格全是轉載微信  Python與Django大咖之路

 的文章,因為我上次實現django-allauth的案例已經有一陣子了,大部分的注意事項不怎麼清楚了,所有就完全照搬他的文章做一個參考。