最新历史版本
:非跨域登录接口 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
1. 概述编辑
1.1 描述
平台系统单点登录接口 是适合在 Web 或者跨域场景使用的,返回的数据结构为 JSONP。
其他比如 Android 原生,或者 Java 后台调用单点接口获取 Token,如果使用上面跨域的接口,结果请求回来的数据不是标准 JSON,都是({accesstoken:xxx}),被括起来了,需要再去掉括号,取 Token。
安卓原生不存在跨域问题,可以直接使用普通登录的接口,返回的数据结构直接使用的 JSON 即可。
1.2 接口
详细点击 决策平台在线接口文档 中的 登录登出 章节。
3. 示例编辑
3.1 完整代码
完整代码如下所示:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; " charset="UTF-8">
<script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
<script type="text/javascript">
function doSubmit() {
var username = document.getElementById("username").value.trim();
var password = document.getElementById("password").value.trim();
if (username === "") {
window.alert("请输入用户名");
return false;
}
if (password === "") {
window.alert("请输入密码");
return false;
}
var url = "/webroot/decision/login";
var data = {
username: username,
password: password,
validity: -2, //是否保持登录,-2表示是
origin: ""
};
jQuery.ajax({
type: "POST",
url: url,
dataType: "json",
contentType: "application/json",
data: JSON.stringify(data),
success: function (res) {
console.log(res);
if (res.errorCode) {
window.alert(res.errorMsg);
}else {
// 保存token并跳转到对应链接
var tokenCookie = "fine_auth_token=" + res.data.accessToken + ";path=/";
if(res.data.validity === -2) {
var exdate = new Date();
exdate.setDate(exdate.getDate() + 14);
tokenCookie += ";expires=" + exdate.toGMTString();
}
document.cookie = tokenCookie;
window.location.href = res.data.url;
}
},
error: function () {
alert("超时或服务器其他错误");// 登录失败(超时或服务器其他错误)
}
});
}
</script>
</head>
<body>
<p>请登录</p>
<form id="login" name="login" method="POST" action="">
<p>用户名:<input id="username" type="text" name="username"/></p>
<p>密 码:<input id="password" type="password" name="password"/></p>
<input type="button" value="登录" onClick="doSubmit()"/>
</form>
</body>
</html>
3.2 保存预览
将本文 3.1 章节中的代码另存为 login.html,保存到 %FR_HOME%/webroot/ 路径下。
启动设计器,输入http://localhost:8075/webroot/login.html,效果如下图所示: