[{"id":"bcb0874d-299b-448e-9552-9e9b25ef80dd","tags":[{"product":null,"links":null,"id":"ba7e818e-4f6b-4211-b1ac-58e3bafcf439","name":"\u66F4\u65B0","color":"orange","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"8ce3627e-9e58-471b-9133-4f135d191e7b","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"ae60ae59-34f5-4f32-a8eb-243ed1457543","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"3d4848c3-910f-4ffa-9153-60bb507334a9","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"133f4ca6-d951-4d65-a618-3dc6301266f7","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"de62ec1c-813e-40b1-8160-a4cd109afe64","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"2426c71d-8332-4cbd-a436-1ec4f8666464","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"2ce7b6b0-78aa-4e4b-bf8a-e4ba2f988298","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"4706db46-0811-4652-8f59-1e0a1da84758","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"8f1271bb-2cd9-4f39-9897-c15b239ee7ab","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"677e13a7-6f3e-449f-986c-2c3a26f8d54f","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"5e40f6dc-caec-49d7-a1d0-be65f06815ba","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"2457f0e0-9e71-4860-a87d-065e0fb84f84","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"d5c67fd0-1145-482c-9113-97b492c44c18","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"a609a8fa-ab91-4c1d-a1c3-d209d0463303","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"b4a9eb15-94e5-48df-b218-a24138f0cf9c","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]}]
        
(Showing Draft Content)

调用登录API

功能概述

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

操作介绍

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

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

授权客户端信息就是上一小节( 登录API客户端管理 )介绍的客户端ID和授权码。

2. 将用户名和密码信息 POST 到 API 的 URL

如果登录成功,返回结果将包含访问令牌(access_token);如果登录失败,返回结果将包含错误信息。

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 = "eunGKas3Pqd6FMwx9eUpdS7xmz";
 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

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