OAuth2.0对接

更新时间:

本章主要介绍应用托管中托管型应用免登及用户信息获取相关流程

页面流程

sep整理-oauth.png

  1. 用户输入三方应用域名
  2. 应用跳转IoT oauth验证地址,同时携带认证后跳转的callback地址
  3. IoT认证后,携带授权码oauthcode跳转第2步callback的地址
  4. 应用获取到oauthcode后可以换取accesscode,并通过accesscode获取到用户的完整信息

系统调用

image.png

接入流程

Step 1. 应用请求发起

用户通过在应用上架时设置的默认地址来发起浏览器访问,应用需要判断当前请求需要进行IoT OAuth2免登

请求格式及示例
  1. 重定向地址: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的同时返回,三方应用可以校验其一致性

请求示例
  1. https://account.iot.aliyun.com/oauth2/auth?
  2. client_id=123456&
  3. redirect_uri=https://www.aliyun.com/app/auth&
  4. response_type=code&state=jskdjfh

注:分行是为了增加请求参数的可读性:

Step 2. 跳转redirect_uri

IoT在验证当前用户合法后,将生成当前用户授权码oauthcode,在回跳redirect_uri地址时通过GET方式传递oauthcode,并同时返回state

请求示例
  1. GET HTTP/1.1 302 Found
  2. 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认证时会检查对应权限,当用户没有访问某应用的权限时,平台会直接拒绝本次免登操作
sep整理-Page-6.png

Step 1. 开启oauth2权限控制

默认oauth2不做用户和应用绑定关系权限检查,如果您需要开启这个能力请联系我们

Step 2.授权用户可访问应用

获取OAuth授权code后可通过该接口获取accessToken身份信息,详情请参见OAuth2 API->authorizeOAuthLoginPerm