当前位置: 首页 > 知识库问答 >
问题:

OneLogin-成功登录后如何将用户重定向到另一个页面?

呼延河
2023-03-14

根据OneLogin留档,通过API调用登录用户的最后步骤是:

  1. 生成session_token并通过表单POST将其提交到OneLogin url
  2. 然后OneLogin服务器将为您启动会话,并向您的浏览器返回一个仅适用于httpOnly的域特定cookie
  3. 识别表单POST返回了302重定向状态,并将用户发送到另一个页面

我的问题是你应该如何处理第三个问题?尤其是对于返回的cookie。

文档指出:

在您的实际应用程序中,您需要包含逻辑来查看重定向并采取适当的行为。您的应用程序首先请求POST,但在收到成功响应后,它必须能够识别用户现在已登录并通过向用户显示登录状态来做出适当的响应,例如。

如何查看表单帖子的重定向

我可以这样做,如果我构建一个servlet,我的浏览器调用servlet,我在后端模拟表单post。但是现在返回的cookie只被我的servlet调用接受。如果我试图将它传递回我的浏览器,它将被拒绝,因为域字段与我最初的请求不匹配。至少我假设这是正在发生的事情...我这里有点模糊。

由于cookie的“httpOnly”方面,我无法通过AJAX调用执行表单发布。该属性使其对大多数浏览器都是禁止的。

那么,这部分是如何工作的呢?有没有更简单的方法?有人是如何解决这个问题的?我的最终目标只是将经过身份验证的用户发送到我自己的门户页面,但我无法成功识别表单响应并正确设置浏览器cookie。

任何见解都是值得赞赏的。我正在使用FireFox 49和Tomcat 7,如果有帮助的话。

共有1个答案

邓阳伯
2023-03-14

简而言之,流程是:

获取会话令牌。从您的登录页面向OneLoginendpoint发布会话令牌。OneLogin将接受令牌,并在OneLogin域上设置会话cookies,并重定向回发布到它的原始页面。

最后,创建会话部分应该永远不会失败,因为您这边的逻辑必须处理密码错误的情况,并且应该永远不会发送到创建会话endpoint,除非流程的这一部分成功。

您的页面需要做的就是识别它正在从创建会话页面重定向到它,而不是再次向用户显示用户名和密码的逻辑。

话虽如此,我们希望在接下来的几周内完成此endpointCORS的兼容性,这样您就可以进行AJAX调用,而不必处理所有这些重定向问题。

 类似资料:
  • 我正在我是身份提供者的地方实施SSO,现在我能够成功登录到服务提供者。但它把我带到了主页。我想在发布响应时指定着陆页URL。搜索了很多,但找不到任何令人信服的东西。不太知道SAML响应的哪个元素携带着陆页URL或采用我必须指定的形式。使用java和opensaml库生成响应。

  • 问题内容: 我知道之前曾有人问过这个问题,但是我在这里面临一个特殊的问题。 我使用Spring Security 3.1.3。 我的Web应用程序中有3种可能的登录案例: 通过登录页面登录:确定。 通过受限页面登录:也可以。 通过非受限页面登录:不好,…每个人都可以访问“产品”页面,并且用户可以在登录后发表评论。因此,同一页面中包含一个登录表单,以允许用户进行连接。 情况3)的问题是我无法设法将用

  • 我知道这个问题以前有人问过,但我现在面临一个特殊的问题。 我使用spring security 3.1.3。 我的web应用程序中有3种可能的登录情况: 通过登录页登录:确定。 通过受限页面登录:也可以。 通过非受限页面登录:不确定...每个人都可以访问“产品”页面,如果用户已经登录,他可以发表评论。因此登录表单包含在同一页面中,以便允许用户进行连接。 案例3)的问题是,我无法将用户重定向到“产品

  • 我想在登录后将用户重定向到同一页面。该场景是,如果用户未登录,将重定向到登录页面。在登录页面上,当他单击一个可用的用户选项时,我想存储用户id,然后将他重定向回他来自的同一页面。为此,我使用以下代码: 在应用程序中提供帮助。rb: 在SigninController中: 在登录/索引页中:

  • 嗨,我需要知道如何通过验证用户角色来重定向应用程序,就像:如果ROLE_USER重定向到accountuser.xhtml或者如果ROLE_ADMIN重定向到accountadmin.xtml那样 使用spring security 和身份验证方法 这是我的账户流水:

  • 记录器文件中的日志- org.springframework.Security.Access.event.loggerlistener-安全授权失败,原因是:org.springframework.Security.Access.accessdeniedexception:访问被拒绝;通过身份验证的主体:org.springframework.security.authentication.ano