【问题标题】:Session Becoming Null After Callback from XERO AuthorizationXERO 授权回调后会话变为空
【发布时间】:2021-07-06 09:01:09
【问题描述】:

我面临一个非常奇怪的问题。我有一个应用程序,它基本上使用 OAUTH 2.0 连接到 XERO 授权。应用程序的工作方式是,在我的应用程序中,我有一个按钮(由 XERO 提供),它基本上将我重定向到他们的 OAUTH 授权页面,然后根据 XERO 上的应用程序设置,OAUTH 页面将我重定向回我的应用程序到控制器方法,然后做剩下的保存令牌等。

我在 DEV 和 UAT 上对此进行了测试,一切正常。现在是时候将它发布到 PROD 机器了,我在连接了负载均衡器的 AWS EC2 上进行了构建更新,并通过点击服务器在我的机器上对其进行了测试,它应该可以正常工作。

现在的问题是,一旦我在 CEO 的机器上测试它,它就会给我带来可怕的 NULL POINTER EXCEPTION。

在一些服务器端日志记录之后,我发现我的会话由于某种原因在重定向后被破坏了。

这是我在应用程序上更改但仍然没有运气的内容列表:

1- 更改了要在 SQL 上保存的会话。 (同样的问题在我的机器上有效,在另一台上无效)。

2- 检查是否正在回收 AppPool for IIS。 (没有被回收,同样的问题)。

3- 在 AWS ALB(应用程序负载均衡器)上启用“粘性会话”。 (同样的问题)。

4- 尝试将数据保存在 Cookie 中并将其拉回。 (同样的问题)。

有人可以帮我看看我哪里出了问题吗?

编辑

好的,我发现了一些有趣的信息。我在我的 EC2 实例上玩耍并尝试调试应用程序,并在第 3 部分应用程序重定向回应用程序时发现以下内容(参见下图):

所以,我猜这缩小了范围。如果有人可以帮助我,那就太好了。提前致谢。

【问题讨论】:

    标签: c# asp.net-mvc iis session-state xero-api


    【解决方案1】:

    好的,我刚刚找到了一个关于问题出现原因的解决方案,发生的事情是当回调完成时,Cookies 域设置为 (XXXX.ae) 而不是 (www.XXX.ae) 或 (.XXXX. ae) .

    我解决此问题的方法是更新我的 PRODUCTION web.config 中的以下行。

      <system.web>
     <httpCookies domain="(your_Domain_name_here).com" httpOnlyCookies="true"/>
      </system.web>
    

    请记住不要在您的域中包含 www。只要您应用了正确的重定向,这不会导致问题,并且您的 cookie 将在您的回调中正确加载域 .(your_Domain_name).com。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多