首页 >安全认证 >开发指南 >服务端接入 >获取应用授权Token

获取应用授权Token

前提条件

  1. 请先完成阿里云账号注册、实名认证、开通安全认证创建应用

  2. 请完成获取阿里云访问密钥;

获取应用授权Token

获取应用授权token, 移动端SDK调用接口需要

请求参数

名称

类型

必填

示例值

描述

ApplicationExternalId

String

A0000001

应用外部ID,该字段在创建应用时指定,在应用详情页中查看

MobileExtendParamsJson

String

通过调用移动端SDK生成的数据,Base64编码的JSON数据;iOS SDK 接入Android SDK 接入

MobileExtendParamsJsonSign

String

5724badc40b93c1748803611abd591832e2f029979f0d46f0eeef42360dad5cb

通过调用移动端SDK生成的应用签名数据,十六进制编码字符串

UserId

String

zhangsan

用户ID,建议填

XClientIP

String

10.11.100.10

移动端真实IP,建议传递该字段,安全认证服务会基于该字段进行智能安全风控检测

返回数据

名称

类型

示例值

描述

Success

boolean

true

操作结果,true 代表成功,false 代表失败

Code

String

Opreation.Success

状态码。

  • 当 Success=true 时,Code=Operation.Success

  • 当 Success=false 时,Code的值,请参见下方错误码

Message

String

Opreation.Success

具体的描述信息,当 Success=false 时,会给出Code的对应的具体描述信息

RequestId

String

1C0EE50A-B3BB-42FD-AB59-E3FE88976982

请求ID

Data

String

操作成功时,Data中的JSON字符串包含access_token字段:

  • access_token: 字符串:提供给移动端调用手机号认证、IFAA认证器时使用

操作失败时;Data字段为空

请求示例

请求方式:POST

https://idaas-doraemon.aliyuncs.com/?Action=FetchAccessToken
&Version=2021-05-20
&ApplicationExternalId=A0000001
&MobileExtendParamsJson=eyJhcHBJ...biI6IjEuMCJ9
&MobileExtendParamsJsonSign=5724badc40b...6f0eeef42360dad5cb
&UserId=zhangsan
&<公共请求参数>

正常返回示例 -本机号码登录获取手机号成功

{
  "RequestId": "33ED8414-F27C-5CA4-B53F-FDFF61A7C96E",
  "Message": "Operation.Success",
  "Data": {
    "Scope": "read",
    "Access_token": "eyJhbGciOiJIUz.....xRtNwLGSV94KaGnW8",
    "Token_type": "bearer",
    "Expires_in": 86399
  },
  "Code": "Operation.Success",
  "Success": true
}

错误返回示例 - 请求参数中应用ID不存在

{
  "Success": false,
  "Code": "Operation.Failure.Application.ResourceNotExist",
  "Message": "APIInvokeError.ApplicationDoesNotExist",
  "RequestId": "1C0EE50A-B3BB-42FD-AB59-E3FE88976982",
  "Data":null
}

代码示例(Java)

需要在一个JAVA的MAVEN 项目中引入服务端SDK包, 坐标如下。

  <dependency>
   <groupId>com.aliyun</groupId>
   <artifactId>aliyun-java-sdk-idaas-doraemon</artifactId>
   <version>1.2.4</version>
  </dependency>

获取或校验号码的示例代码:

import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.idaas_doraemon.model.v20210520.ServiceInvokeRequest;
import com.aliyuncs.idaas_doraemon.model.v20210520.ServiceInvokeResponse;
import com.aliyuncs.profile.DefaultProfile;

import java.nio.charset.StandardCharsets;
import java.util.Base64;

public class IDaaSAuthSample {

    /**
     * 使用AK&SK初始化账号Client
     *
     * @param accessKeyId
     * @param accessKeySecret
     * @return Client
     * @throws Exception
     */
    public static IAcsClient createClient(String accessKeyId, String accessKeySecret) throws Exception {
        DefaultProfile profile = DefaultProfile.getProfile(
                "cn-hangzhou",
                accessKeyId,
                accessKeySecret);
        // addEndpoint
        DefaultProfile.addEndpoint("cn-hangzhou",
                "idaas-doraemon",
                "idaas-doraemon.aliyuncs.com");
        // 访问的域名
        return new DefaultAcsClient(profile);
    }

    public static void main(String[] args_) throws Exception {
        // 获取token
        fetchAccessToken();
    }

    public void fetchAccessToken() throws Exception {
       IAcsClient client = IDaaSAuthSample.createClient("Your AccessKey", "Your AccessSecret");
       //获取应用授权token
       FetchAccessTokenRequest request = new FetchAccessTokenRequest();
       request.setApplicationExternalId("testApplication");
       request.setMobileExtendParamsJson("eyJhcHBJZCI6....YXBwT1MiOiJpT1Mi");
       request.setMobileExtendParamsJsonSign("ba6f5596f00102cb1a7d971f8390b7ccb28e6bc4e8694d051f9299ccc69e1186");
       request.setUserId("zhangsan");
       // 复制代码运行请自行打印 API 的返回值
       try {
           FetchAccessTokenResponse response = client.getAcsResponse(request);
           System.out.println(response.getData());
       } catch (Exception e) {
            //根据e,getCode()判断异常原因
            System.out.println(e);
       }
    }
}

示例代码的maven依赖

  <dependency>
   <groupId>com.aliyun</groupId>
   <artifactId>aliyun-java-sdk-idaas-doraemon</artifactId>
   <version>1.2.4</version>
  </dependency>
   <groupId>com.aliyun</groupId>
   <artifactId>aliyun-java-sdk-core</artifactId>
   <optional>true</optional>
   <version>[4.4.9,5.0.0)</version>
  </dependency>
阿里云首页 安全认证 相关技术圈