Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

1. 内容概述



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


2. 操作步骤



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

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

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

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

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


3. .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;
}

4. Java程序调用登录API



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

wyn1.java

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

5. 前端调用登录API



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

getToken.html


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

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



  • No labels