我正在通过ajax调用获取会话令牌。依次调用API方法https://api.us.onelogin.com/api/1/login/auth
$.post("onelogin.ashx?action=sessiontoken", data, function (s) {
$("#session_token").val(s);
$("#frmSubmit").submit();
});
<form action="https://admin.us.onelogin.com/session_via_api_token" method="POST" id="frmSubmit">
<input type="hidden" id="session_token" name="session_token" value="">
<input type="submit" placeholder="GO">
<input id="auth_token" type="hidden">
</form>
现在在IE和Firefox中,用户已登录。session_via_api_token返回带有我的原始页面URL的响应标头“ Location”。
在Chrome中,用户尚未登录,并且响应标头“ Location”为https://app.onelogin.com/login
我感觉这是cookie的问题,但不知道是什么原因。有什么想法吗?
我最近在Chrome上的session_via_api_token遇到相同的问题。 IE,MS Edge,FF上的重定向正常工作。我正在使用代码将会话添加到浏览器:
function makeCors(session_token) {
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
method = "POST";
var url = "https://<your_subdomain>.onelogin.com/session_via_api_token";
xhr.open(method, url, true);
xhr.setRequestHeader("Content-Type", "application/json");
body = {"session_token": session_token};
xhr.send(JSON.stringify(body));
};