教程文件:
1.安裝
2.配置=(
...'social_django'
,...
)3.資料生成,直接migrate,因為原始碼中的 makemigrtasion 生成的資料庫遷移檔案已經存在了。會生成5張socia表,不用管
./4.配置中新增manage.py
migrate
下面是原始碼,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...