我們來看一下aouth2.0中的授權碼模式是怎麼定義的:
授權碼模式(authorization code)是功能最完整、流程最嚴密的授權模式。它的特點就是通過客戶端的後台伺服器,與」服務提供商」的認證伺服器進行互動。
它的步驟如下:
(a)使用者訪問客戶端,後者將前者導向認證伺服器。
(b)使用者選擇是否給予客戶端授權。
(c)假設使用者給予授權,認證伺服器將使用者導向客戶端事先指定的」重定向uri」(redirection uri),同時附上乙個授權碼。
(d)客戶端收到授權碼,附上早先的」重定向uri」,向認證伺服器申請令牌。這一步是在客戶端的後台的伺服器上完成的,對使用者不可見。
(e)認證伺服器核對了授權碼和重定向uri,確認無誤後,向客戶端傳送訪問令牌(access token)和更新令牌(refresh token)
2.在你的包名相應目錄下新建乙個wxapi目錄,並在該wxapi目錄下新增乙個wxentryactivity類,該類繼承自activity(例如應用程式的包名為net.sourceforge,則新的包名為:net.sourceforge.wxapi),此處應注意包名不要弄錯,新增類的名字必須為wxentryactivity。
返回說明
@override
public void onresp(baseresp resp) toastutil.showmessagelong(this, resp.errstr); }
客戶端收到授權碼後,向自己的伺服器發起登入請求,並附帶收到的授權碼。
獲取第一步的code後,請求以下鏈結獲取access_token:
private string getaccesstoken(string code)
引數 說明
access_token 介面呼叫憑證
expires_in access_token 介面呼叫憑證超時時間,單位(秒)
refresh_token 使用者重新整理access_token
openid 授權使用者唯一標識
scope 使用者授權的作用域,使用逗號(,)分隔
錯誤返回樣例:
服務端收到返回的access_token,將access_token,expires_in,access_token是否有效 等資料返回給客戶端,客戶端成功登入
獲取access_token後,進行介面呼叫,有以下前提:
access_token有效且未超時;
對於介面作用域(scope),能呼叫的介面有以下:
授權作用域(scope) 介面 介面說明
snsapi_base /sns/oauth2/access_token 通過code換取 access_token、refresh_token和已授權scope
/sns/oauth2/refresh_token 重新整理或續期access_token使用
/sns/auth 檢查access_token有效性
snsapi_userinfo /sns/userinfo 獲取使用者個人資訊
其中snsapi_base屬於基礎介面,若應用已擁有其它scope許可權,則預設擁有snsapi_base的許可權。使用snsapi_base可以讓移動端網頁授權繞過跳轉授權登入頁請求使用者授權的動作,直接跳轉第三方網頁帶上授權臨時票據(code),但會使得使用者已授權作用域(scope)僅為snsapi_base,從而導致無法獲取到需要使用者授權才允許獲得的資料和基礎功能。
以獲取使用者資訊為例:
private void getuserinfo()
錯誤的json返回示例:
如果access_token有效,服務端將資訊返回給客戶端,客戶端成功登入。
access_token是呼叫授權關係介面的呼叫憑證,由於access_token有效期(目前為2個小時)較短,當access_token超時後,可以使用refresh_token進行重新整理,access_token重新整理結果有兩種:
1.若access_token已超時,那麼進行refresh_token會獲取乙個新的access_token,新的超時時間;
2.若access_token未超時,那麼進行refresh_token不會改變access_token,但超時時間會重新整理,相當於續期access_token。
refresh_token擁有較長的有效期(30天),當refresh_token失效的後,需要使用者重新授權。
private void refreshaccesstoken() 引數 說明 access_token 介面呼叫憑證 expires_in access_token介面呼叫憑證超時時間,單位(秒) refresh_token 使用者重新整理access_token openid 授權使用者唯一標識 scope 使用者授權的作用域,使用逗號(,)分隔 錯誤返回樣例:
3.服務端獲取到新的access_token等資訊,並返回給客戶端,客戶端成功登入或者重新獲取授權。 第三方微信接入登入流程整理
我們來看一下aouth2.0中的授權碼模式是怎麼定義的 授權碼模式 authorization code 是功能最完整 流程最嚴密的授權模式。它的特點就是通過客戶端的後台伺服器,與 服務提供商 的認證伺服器進行互動。它的步驟如下 a 使用者訪問客戶端,後者將前者導向認證伺服器。b 使用者選擇是否給予...
第三方登入 微信登入流程
可以選擇從友盟 1 開發者資質認證,認證有效期 一年,有效期最後三個月可申請年審即可續期 審核費用 中國大陸地區 300元,非中國大陸地區 120美元。2 管理中心進行應用配置 1.應用名稱 簡介 官網位址 應用 28 28畫素,108 108畫素,僅支援png格式,大小都不超過300kb 2.應用...
iOS微信第三方登入
2.匯入對應的庫 置應用間的跳轉 4.就說明沒有針對ios9 增加白名單。2 單例介面 import wxapi.h inte ce uiresponder wxapidelegate property strong nonatomic nsstring access token property ...