登录平台
第三方登录平台,调用平台提供的登录 API,参考《系统集成 API》
在平台的页面中登录平台,可以使用 this.request 调用登录 API,参考下面介绍的前端 JS 登录
在平台的服务中登录平台,可以使用 Java SDK,参考下面介绍的后端 Java 登录
前端 JS 登录
通过 Http 请求调用 login,如下:
企业门户地址为:https://entryent3-vip.c.xcaas.net
login 的请求地址为:https://entryent3-vip.c.xcaas.net/login
,示例代码如下
let url = "https://entryent3-vip.c.xcaas.net/login";
this.request({
method : "POST",
url : url,
header : {
"accept" : "application/json",
// 要使用这个类型请求
"content-type" : "application/x-www-form-urlencoded"
},
data : {
username : "这里输入账号",
password : "这里输入密码"
}
}).then(function(ret) {
console.log("登录成功!");
window.open(_thirdEntry, "_blank");
}, function(ret) {
console.log("登录失败!");
});
登录成功后,在第三方系统中,平台的页面和服务都能直接调用
后端 Java 登录
使用用户名密码登录
调用 AuthUtil 类的 login 方法,传入用户名和密码,完成登录并获取 user_sesstion,示例代码如下
String userSession = AuthUtil.login(ServiceUtil.getServiceUrl("entry"), 用户名, 密码);
使用 token 登录
系统提供根据用户名获取 token,参考《第三方自动登录并打开页面》中的使用用户名获取
调用 AuthUtil 类的 tokenLogin 方法,传入 token 完成登录并获取 user_sesstion,示例代码如下
// 获取 token
String credentialToken = ContextUtil.getEnv("CREDENTIAL_TOKEN");
String token = ServiceUtil.post(SpringWebUtil.getRequest(), "entry",
"/uaa/sso/token?username=" + user_name + "&credentialToken=" + credentialToken, null, String.class);
// 使用 token 登录
String userSession = AuthUtil.tokenLogin(ServiceUtil.getServiceUrl("entry"), token);
使用 user_session
在 Java 中调用其他 API
登录后,在调用其他 API 时,把获取到的 user_sesstion 的值设置到 Cookie 中,表示使用这个人的权限访问 API,示例代码如下
HttpServletRequest request = SpringWebUtil.getRequest();
Map<String, String> headers = ServiceUtil.getExtHeaders(request);
headers.put("Cookie","user_session=" + userSession);
JSONObject json = ServiceUtil.get(url, params, headers);
放入响应头返回前端
登录后,把获取到的 user_sesstion 的值设置到响应头的 Cookie 中,示例代码如下
HttpServletResponse response = SpringWebUtil.getResponse();
Cookie cookie = new Cookie("user_session", userSession);
response.addCookie(cookie);