OAuth2.0對接
更新時間:
本章主要介紹應用托管中托管型應用免登及用戶信息獲取相關流程
頁面流程
- 用戶輸入三方應用域名
- 應用跳轉IoT oauth驗證地址,同時攜帶認證后跳轉的callback地址
- IoT認證后,攜帶授權碼oauthcode跳轉第2步callback的地址
- 應用獲取到oauthcode后可以換取accesscode,并通過accesscode獲取到用戶的完整信息
系統調用
接入流程
Step 1. 應用請求發起
用戶通過在應用上架時設置的默認地址來發起瀏覽器訪問,應用需要判斷當前請求需要進行IoT OAuth2免登
請求格式及示例
重定向地址:https://account.iot.aliyun.com/oauth2/auth?
傳遞參數
參數名 | 類型 | 必填 | 描述 |
---|---|---|---|
client_id | String | 是 | 應用的appkey,詳情參見【6.2附錄2】 |
redirect_uri | String | 是 | OAuth認證通過后的重定向應用的URI,包含完整的域名 |
response_type | String | 是 | 返回類型。根據OAuth 2.0標準,目前支持設置此參數的取值為code |
scope | String | 否 | 空格分隔的OAuth范圍列表。如不指定此參數取值,則默認為應用注冊的全部OAuth范圍,加上openid |
state | String | 否 | 三方應用生成的一個隨機字符串,該參數會在返回authcode的同時返回,三方應用可以校驗其一致性 |
請求示例
https://account.iot.aliyun.com/oauth2/auth?
client_id=123456&
redirect_uri=https://www.aliyun.com/app/auth&
response_type=code&state=jskdjfh
注:分行是為了增加請求參數的可讀性:
Step 2. 跳轉redirect_uri
IoT在驗證當前用戶合法后,將生成當前用戶授權碼oauthcode,在回跳redirect_uri地址時通過GET方式傳遞oauthcode,并同時返回state
請求示例
GET HTTP/1.1 302 Found
Location: https://www.aliyun.com/app/auth?code=ABAFDGDFXYZW888&state=jskdjfh
Step 3. 通過oauthcode換取accessToken
獲取OAuth授權code后可通過該接口獲取accessToken身份信息,詳情請參見OAuth2 API-> getAccessTokenByAuthCode
Step 4. 通過accessToken換取用戶信息
獲取accessToken信息后,可通過accessToken來換取登錄用戶的用戶信息,詳情請參見OAuth2 API-> getUserInfoByAccessToken
權限控制
您可以通過授權接口來建立用戶是否可通過oauth2訪問某個應用的權限,IoT平臺在做oauth2認證時會檢查對應權限,當用戶沒有訪問某應用的權限時,平臺會直接拒絕本次免登操作
Step 1. 開啟oauth2權限控制
默認oauth2不做用戶和應用綁定關系權限檢查,如果您需要開啟這個能力請聯系我們
Step 2.授權用戶可訪問應用
獲取OAuth授權code后可通過該接口獲取accessToken身份信息,詳情請參見OAuth2 API->authorizeOAuthLoginPerm
文檔內容是否對您有幫助?