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

如何解决从 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 的回调中正确加载。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?