登录平台

第三方登录平台,调用平台提供的登录 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);

results matching ""

    No results matching ""