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
文档内容是否对您有帮助?