oauth2.0是oauth協議的公升級版本,關注客戶端開發者的簡易性,同時為web應用,桌面應用及收集和起居室裝置提供專門的認證流程。
oauth允許使用者提供乙個令牌,而不是使用者名稱和密碼來訪問它們存放在特定服務提供者的資料。每乙個令牌授權乙個特性的**在特定的時段內訪問特定的資源。這樣oauth允許使用者授權第三方**訪問它們儲存在另外的服務提供者上的資訊,而不需要分享它們的訪問許可或它們資料的所有內容。
授權過程:
使用者單擊授權頁面url,向伺服器發起請求
使用者同意 (scope 為snapi_base時無此步驟)\
實現 3):
elifscope:isinstance(recmsg,receivetextmsg):
#測試 oauth認證
content = ''\
'單擊這裡體驗oauth授權'#
replymsg = replytextmsg(recmsg.fromusername,recmsg.tousername,recmsg.content)
replymsg = replytextmsg(recmsg.fromusername, recmsg.tousername, content)
snsapi_base: 單擊鏈結後,不會彈出授權頁面
snsapi_userinfo:單擊鏈結後,會彈出授權頁面
單擊後,重定向的鏈結裡面會包含 code和state引數. (開發者可以填寫任意state引數)
實現 8)用code換access_token
def返回:當 access_token超時後,可以使用refresh_token進行重新整理,refresh_token 擁有較長的有效期(7天,30天,60天,90天),當refresh_token失效後,需要使用者重新授權.exchange_access_token(code):
exchange_url = '
'.format(
)response =requests.get(exchange_url)
return json.loads(response.text)
def返回同樣格式的json資料。refresh_access_token(refresh_token):
refresh_url = '
'.format(
)response =requests.get(refresh_url)
return json.loads(response.text)
實現 10)使用access_token獲取使用者資訊(scope 為snsapi_userinfo)
def query_userinfo(access_token,openid,lang='驗證 access_token是否有效的實踐:zh_cn'):
query_url='
'.format(
access_token,openid,lang
)response =requests.get(query_url)
return json.loads(response.content)
defvery_access_token_valid(access_token,openid):
very_url = '
'.format(access_token,openid)
response =requests.get(very_url)
result =json.loads(response.text)
if result['
errcode
'] ==0:
return
true
else
:
return false
Oauth2 0授權方式
oauth2.0是一套標準。這個標準解決了這樣的乙個問題。給第三方應用乙個臨時密碼,過期作廢,而且這個密碼的訪問許可權可由我隨時取消。這樣就足夠安全了。這個臨時密碼就是access token。發放access token的方法就多種多樣了,這些方法叫做授權模式。oauth2為我們提供了四種授權方式...
OAuth2 0認證授權
授權碼模式 authorization code 是功能最完整 流程最嚴密的授權模式。它的特點就是通過客戶端的後台伺服器,與 服務提供商 的認證伺服器進行互動。client id x client secret x response type 表示授權型別,必選項,此處的值固定為 code clie...
OAuth 2 0授權框架
背景介紹 oauth2.0授權框架支援第三方應用程式以獲取對http服務的有限訪問權,通過協調批准互動來代表資源所有者,在資源所有者和http服務之間,或者通過允許第三方應用程式代表自己獲取訪問許可權。這個規範取代並淘汰了所描述的oauth1.0協議 一 傳統模式的身份驗證模型 在傳統的客戶端 伺服...