Cypress中ASP.NET和OAuth的登录流程

1l5u6lss  于 2023-01-01  发布在  .NET
关注(0)|答案(1)|浏览(150)

由于我找不到我的具体问题的答案,我想我应该在这里问。
情况如下:我有一个与Auth0集成的应用程序(ASP.NET)。我正在尝试使用PKCE OAuth 2.0流测试使用授权码设置的登录流。到目前为止,我在Cypress中有:
1.正确地导航到主页会将我带到auth0登录页面。
1.我可以提交表单并被重定向到my.app/callback,然后my.app/callback会将用户重定向到my.app/callbackInternal(不要问为什么--这是我继承的应用程序,最有可能获得ASP.NET使用的会话ID cookie)。
1.不幸的是,在重定向时,我的应用程序返回500。
现在,/callback只负责返回一个带有JS脚本的HTML文档,该脚本通过将当前URL中的callback替换为callbackInternal来将位置设置为/callbackInternal。然后,/callbackInternal访问HttpContext.Session以获取代码验证器,但是,该代码验证器似乎不存在,请求结果为500。
所有这些都让我怀疑ASP.NET存储在cookie中的会话ID在第1)点和第3)点之间没有被保留。我确认在重定向时,会话ID cookie被设置,但我似乎无法验证它是否与第1)点中的相同,因为这会导致立即重定向。
基本上,我希望有人在同样的情况下,知道这个问题的解决方案。
我试过验证第1)点和第3)点之间的会话ID,最有可能的情况是它们不同,因此出现了第3)点中的问题。
我还有其他一些测试场景涉及cookie注入,其中访问令牌是通过API以编程方式获得的,所以我不需要它,我想测试登录流本身。

aij0ehis

aij0ehis1#

我也遇到了一个类似的问题,自动化与cypress。通过研究后,我来到解决方案。我试图登录在一个Angular 的应用程序和我的命令是在两个不同的测试。我只是结合所有的命令在一个单一的cypress测试,这解决了问题。保持所有的命令的一个单一的cypress测试函数可能会解决你的问题。

相关问题