更新时间:2023-04-07 GMT+08:00
分享

认证鉴权

基于AppCube开发的智能排班模型BO提供的接口都需要通过认证之后才可以访问。认证方式为:在请求消息头上设置“access-token”。

Token在计算机系统中代表令牌(临时)的意思,拥有Token代表拥有某种权限。Token认证是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限。

通过AppCube的获取Token接口,获取access-token,用于调用API接口时进行鉴权,使用时在请求消息头上设置“access-token”。

  1. 创建OAuth认证。

    1. 登录AppCube环境。
    2. 单击“管理”,选择“系统管理 > OAuth”,进入“OAuth管理”页面。
    3. 单击“新建”,输入名称,授权类型选“客户端模式”,选择用户,如图1所示。
      图1 新建客户端模式OAuth
      • 第三方通过OAuth认证接入系统后,将以选择的用户身份操作数据,所以需要确保选择的用户具有调用API的相关权限。
      • 选择的用户的权限不能为匿名用户权限“Anonymous User Profile”,因为该权限用户没有访问API的权限。
    4. 单击“保存”,在“OAuth管理”页面展示新建的记录,如图2所示。
      图2 OAuth管理列表

  2. 获取客户端鉴权ID(client_id)客户端秘钥(client_secret)。

    1. 单击新建记录“操作”列的,弹出“警告”对话框,如图3所示。
      图3 警告
    2. 单击“确定”,下载密钥文件到本地,如图4所示,从中获取客户端鉴权ID(client_id)客户端秘钥(client_secret)
      图4 密钥

  1. 根据鉴权客户端ID和鉴权密钥通过Post请求调用接口“https://AppCube域名/baas/auth/v1.0/oauth2/token”获取access_token。

    AppCube域名替换为实际域名;********替换为获取到客户端鉴权ID(client id)和客户端秘钥(client_secret)。
    POST https://AppCube域名/baas/auth/v1.0/oauth2/token
    Content-Type: application/x-www-form-urlencoded
    
    grant_type=client_credentials&client_id=********&client_secret=********

    返回的响应消息体可以获取到“access_token”。

    {
      "access_token": "***************************",
      "expires_in": 1800,
      "token_type": "Bearer"
    }
    图5 获取access_token示例-Headers
    图6 获取access_token示例-Body
    图7 获取access_token示例-返回的响应消息体

  2. 将Headers中的access-token参数设置为上一步得到的access_token,成功调用自定义的API接口

    AppCube域名替换为实际域名;********替换为获取到的access_token的值;Content-Type(消息体的类型(格式)),请根据实际API实际情况配置,示例中为application/json

    POST https://AppCube域名/baas/auth/v1.0/oauth2/token
    Content-Type: application/json
    access-token: ********
    
    {
        "pageStart":0,
        "pageSize":3,
        "deleteFlag":0
    }

    返回的响应消息体:

    {
        "resCode": "0",
        "resMsg": "成功",
        "result": {
            "records": [],
            "total": 0
        }
    }
    图8 调用API示例-Hearders
    图9 调用API示例-Body
    图10 调用API示例-返回的响应消息体

相关文档