Django 第三方登入框架

2021-08-14 05:55:57 字數 2431 閱讀 4438

教程文件:

1.安裝

2.配置=(

...'social_django'

,...

)3.資料生成,直接migrate,因為原始碼中的 makemigrtasion 生成的資料庫遷移檔案已經存在了。會生成5張socia表,不用管

./

manage.py

migrate

4.配置中新增

下面是原始碼,google的第三方驗證,不需要新增。

authentication_backends=(

'social_core.backends.open_id.openidauth'

,'social_core.backends.google.googleopenid'

,'social_core.backends.google.googleoauth2'

,'social_core.backends.google.googleoauth'

,'social_core.backends.twitter.twitteroauth'

,'social_core.backends.yahoo.yahooopenid'

,...

'django.contrib.auth.backends.modelbackend',)

authentication_backends = (

#自定義設定jwt驗證登入時候,可以匹配手機和密碼(jwt認證介面預設匹配密碼和賬戶)

'users.views.custombackend',

'social_core.backends.weibo.weibooauth2',

'social_core.backends.qq.qqoauth2',

'social_core.backends.weixin.weixinoauth',

'django.contrib.auth.backends.modelbackend',

)

5.在urls.py中配置url

urlpatterns

=patterns(''

,...

url('',

include

('social_django.urls'

,namespace

='social'

))...

)

6.setting.py中配置

templates=[

}]

原始碼:

social_auth_twitter_key

='foobar'

social_auth_twitter_secret

='bazqux'

我的配置:

social_auth_weibo_key = '23******x' #微博

social_auth_twitter_secret = '2c60b652***xc*********' #微博

social_auth_qq_key = 'foobar' #qq

social_auth_qq_secret = 'bazqux' #qq

8.成功登陸後跳轉頁面設定

#第三方登入成功後跳轉頁面,這裡跳轉的主頁

social_auth_login_redirect_url = '/index/'

最後:登入跳轉後,會自動生成乙個使用者,和該第三方使用者繫結。

由於專案的不同,不會直接登入,因為第三方框架是將資料存在了session中,而我的專案是用jwt機制儲存token來實現登入,所以後續需要修改原始碼的方法。

先導入庫

from rest_framework_jwt.serializers import jwt_encode_handler, jwt_payload_handler

然後修改def do_complete函式

###############    修改了這個   #############

# return backend.strategy.redirect(url)

response = backend.strategy.redirect(url)

#根據username生成token

payload = jwt_payload_handler(user)

response.set_cookie('name',user.name if user.name else user.username,max_age=24 * 60 * 60) #一定要設定過期時間

response.set_cookie('token',jwt_encode_handler(payload))

return response

最後完成第三方使用者登入

第三方登入

我的應用就可以通過token第三方應用獲取一些基本資訊了,我的應用在獲取到這些基本資訊之後,就可以在我的應用中建立乙個賬號了。下次使用地方登入獲取到的這些使用者資訊,就可以直接用來登入我的應用了。為什麼先返回code呢?這個返回的code只能夠使用一次。這個code是從qq的伺服器返回給 時,我們時...

第三方登入

分類 android 2014 03 26 10 24 329人閱讀收藏 舉報 android android開發 第三方登入 名詞說明 access toekn 授權成功後返回的token,用於呼叫第三方api 第三方登入的主要作用 1 使用第三方賬號資訊來初始化自己的賬號 暱稱 頭像等資訊 第三...

django專案微博第三方登入

此處咱們用到的是 social django,所以要把此應用註冊到配置檔案中,然後需要新增 social django.context processors.login redirect authentication backends users.utils.usernamemobileauthba...