从 XERO 授权回调后会话变为空

问题描述

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

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

现在的问题是,一旦我在我 CEO 的机器上测试它,它给了我可怕的空指针异常。

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

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

1- 更改了要保存在 sql 上的会话。 (同样的问题适用于我的机器,而不适用于另一台。

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

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

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

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

编辑

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

This seems to be the problem I think

所以,我猜这缩小了范围。如果有人能帮我解决这个问题,那就太好了。提前致谢。

解决方法

好的,我刚刚找到了一个解决问题的方法,当回调完成时,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 的回调中正确加载。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...