高階介面 OAuth2 0網頁授權

2022-09-18 00:48:11 字數 1957 閱讀 3294

oauth2.0是oauth協議的公升級版本,關注客戶端開發者的簡易性,同時為web應用,桌面應用及收集和起居室裝置提供專門的認證流程。

oauth允許使用者提供乙個令牌,而不是使用者名稱和密碼來訪問它們存放在特定服務提供者的資料。每乙個令牌授權乙個特性的**在特定的時段內訪問特定的資源。這樣oauth允許使用者授權第三方**訪問它們儲存在另外的服務提供者上的資訊,而不需要分享它們的訪問許可或它們資料的所有內容。

授權過程:

使用者單擊授權頁面url,向伺服器發起請求

使用者同意 (scope 為snapi_base時無此步驟)\

實現 3):

elif

isinstance(recmsg,receivetextmsg):

#測試 oauth認證

content = ''\

'單擊這裡體驗oauth授權'#

replymsg = replytextmsg(recmsg.fromusername,recmsg.tousername,recmsg.content)

replymsg = replytextmsg(recmsg.fromusername, recmsg.tousername, content)

scope:

snsapi_base: 單擊鏈結後,不會彈出授權頁面

snsapi_userinfo:單擊鏈結後,會彈出授權頁面

單擊後,重定向的鏈結裡面會包含 code和state引數. (開發者可以填寫任意state引數)

實現 8)用code換access_token

def

exchange_access_token(code):

exchange_url = '

'.format(

)response =requests.get(exchange_url)

return json.loads(response.text)

返回:當 access_token超時後,可以使用refresh_token進行重新整理,refresh_token 擁有較長的有效期(7天,30天,60天,90天),當refresh_token失效後,需要使用者重新授權.

def

refresh_access_token(refresh_token):

refresh_url = '

'.format(

)response =requests.get(refresh_url)

return json.loads(response.text)

返回同樣格式的json資料。

實現 10)使用access_token獲取使用者資訊(scope 為snsapi_userinfo)

def query_userinfo(access_token,openid,lang='

zh_cn'):

query_url='

'.format(

access_token,openid,lang

)response =requests.get(query_url)

return json.loads(response.content)

驗證 access_token是否有效的實踐:

def

very_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協議 一 傳統模式的身份驗證模型 在傳統的客戶端 伺服...