1

我正在使用 onelogin REST api 登录用户:https ://developers.onelogin.com/api-docs/1/samples/login-user-via-api 。

我已成功按照所有步骤生成会话令牌,没有任何问题。

然后文档说将会话令牌发布到此 url:https ://admin.us.onelogin.com/session_via_api_token

但是,当使用会话令牌发布到该 URL 时,它只是将我重定向到 onelogin 登录页面。

这是帖子的 c# 代码。我在变量中有一个有效的会话令牌:session_token:

        string url = "https://admin.us.onelogin.com/session_via_api_token";

        StringBuilder postData = new StringBuilder();

        postData.Append("session_token=" + HttpUtility.UrlEncode(session_token) + "&");
        postData.Append("auth_token=" + HttpUtility.UrlEncode(""));

        //ETC for all Form Elements

        // Now to Send Data.
        StreamWriter writer = null;

        request = (HttpWebRequest)WebRequest.Create(url);
        request.Method = "POST";
        request.ContentType = "application/x-www-form-urlencoded";
        request.ContentLength = postData.ToString().Length;
        try
        {
            writer = new StreamWriter(request.GetRequestStream());
            writer.Write(postData.ToString());
        }
        finally
        {
            if (writer != null)
                writer.Close();
        }
4

1 回答 1

1

这似乎是服务器端代码,因此永远无法成功获得与最终用户浏览器的会话。

为了使此流程正常工作,您需要将最终用户的浏览器重定向到https://admin.us.onelogin.com/session_via_api_token URL,仅将 auth_token 值作为 POST 参数。

上面的所有代码都会让你的后端服务器获得一个会话 cookie,这根本不能帮助你的最终用户建立一个会话。

更多细节可以在这里找到:https ://developers.onelogin.com/api-docs/1/samples/login-user-via-api

于 2016-07-29T23:42:11.297 回答