2

我通过 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。

在 Chrome 中,用户未登录,响应标头“位置”为https://app.onelogin.com/login

我感觉这是 cookie 的问题,但不知道是什么问题。有任何想法吗?

4

1 回答 1

0

我对 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));
 }; 
于 2020-03-22T04:08:54.713 回答