[]
        
在线Demo 免费试用
(Showing Draft Content)

调用登录API

1. 概述

1.1 功能概述

系统的登录 API 通过 HTTP 协议调用,调用 URL 为 http://x.x.x.x:51980/connect/token 。因此,无论是 .NET 还是 Java 程序,都可以调用此 API 以实现后台登录。

2. 操作步骤

调用过程包括两个主要步骤:

2.1 将授权客户端信息加入请求头

  1. 授权客户端信息为集成客户端ID及集成客户端密钥。通过以下方式获得:

  • 集成客户端ID: 固定值integration

  • 集成客户端密钥: 在「系统管理-->安全设置」中获取。用户可自定义设置。

    PixPin_2025-07-24_11-56-22

2.2 将信息置于API的URL

  1. 将用户名和密码信息使用POST 方式置于API 的 URL。下面以ApiFox为例,各参数的详细使用方法,请参照下图参数行对应的说明标注:

    PixPin_2025-04-14_17-03-36

    type=info

    注意: 客户端认证只需选择一种方式:通过Body提交client_id/client_secret,或在Header中添加AuthorizationBasic认证即可,二者选其一。

    PixPin_2025-04-14_17-34-30

    PixPin_2025-04-14_17-34-51

    状态

    说明

    示例图

    登录成功

    返回结果将包含访问令牌(access_token)

    PixPin_2025-04-14_17-04-09

    登录失败

    返回结果将包含错误信息

    PixPin_2025-04-14_17-04-36

3. NET程序调用登录API

下面以C#为例,介绍登录API的具体调用方法。

  1. 首先定义一个实体类TokenInfo,这是 API 返回的 JSON 字串所对应的实体类。

    public class TokenInfo
    {
     public string access_token; // 令牌
     public int expires_in; // 令牌有效期(秒)
     public string token_type; // 令牌类型
     public string refresh_token; // 刷新令牌
     public string error; // 错误代码
     public string error_description; // 错误信息
    }
  2. 下面的函数,就是调用登录 API 的具体代码:

    private string GetWynToken(string apiUrl, string userName, string password)
    {
        var client = new System.Net.Http.HttpClient();
     // API的调用者称为客户端(client),为了防止恶意调用,
     // 可在 http://localhost:51980/management 页面,管理允许调用API的客户端名称和授权码
     string clientName = "integration";
     string clientPassword = {"填入集成客户端密钥"};
     string authorizationString = clientName + ":" + clientPassword;
     byte[] byteArray = System.Text.ASCIIEncoding.ASCII.GetBytes(authorizationString);
     // 客户端授权信息应转成Base64String,放在请求头中
     string base64 = System.Convert.ToBase64String(byteArray);
     client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", base64);
     // 准备提交数据,即待验证的用户名和密码
     string postData = "grant_type=password&username=" + userName + "&password=" + password;
     var postContent = new System.Net.Http.StringContent(postData, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded");
     // 调用
     var res = client.PostAsync(apiUrl,postContent).Result;
     // 返回的结果是一个JSON字串
     var resJson = res.Content.ReadAsStringAsync().Result;
     // 反序列化为TokenInfo对象
     var ser = new System.Web.Script.Serialization.JavaScriptSerializer();
     var tokenInfo = ser.Deserialize<TokenInfo>(resJson);
     // 调用失败或者密码不对,会返回error
     if (!string.IsNullOrWhiteSpace(tokenInfo.error)) return tokenInfo.error_description;
     // access_token属性值是真正的令牌
     return tokenInfo.access_token;
    }

4. Java程序调用登录API

  1. 下面的附件文件是一个调用登录 AP I的 Java 示例代码文件。

    wyn1.zip

  • 这个示例演示了调用 API 的过程,调用成功后,将 API 返回信息直接显示在页面上。实际项目中,一般是取出其中的access_token,并放进session中以备业务系统集成具体报表或仪表板时使用。

5. 前端调用登录API

  1. 下面附件文件是一个前端调用登录API的示例代码文件。

    getToken.html

  2. 下载并双击打开,修改 Wyn 的登录信息,点击按钮获取令牌:

    image2019-9-24_15-0-15.png

  3. 实际使用时,请使用文本编辑工具打开示例文件,以参考代码。