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

调用登录API

功能概述

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

操作介绍

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

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

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

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

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

    PixPin_2025-04-14_16-56-35

  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

NET程序调用登录API

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

首先定义一个实体类TokenInfo,

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; // 错误信息
}

这是 API 返回的 JSON 字串所对应的实体类。

下面的函数,就是调用登录 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;
}

Java程序调用登录API

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

wyn1.zip

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

前端调用登录API

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

getToken.html

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

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

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