【发布时间】:2020-04-27 02:28:05
【问题描述】:
我有一个隐藏在 Auth0 锁后面的单页应用程序,使用 @auth0/auth0-spa-js。我想使用 Cypress 进行测试,所以我决定关注官方 Auth0 blog post,以及 Johnny Reilly blog post。
我能够使用建议的请求从 auth0 成功检索有效的 JWT 令牌。我不知道该怎么处理它:(
我面临的问题是上述两种方法都依赖应用程序在本地存储 JWT 令牌(在 cookie 或本地存储中)。但是,@auth0/auth0-spa-js 使用了不同的方法,我假设所有相关的 cookie/localstorage 都存储在 auth0 域中。
你有什么想法,如果有办法绕过它?
在 2018 年 7 月报告了类似的问题 here,但并未真正提供任何解决方案
【问题讨论】:
-
我通过使用基于表单的身份验证运行它来解决测试 oauth2 身份验证的 Spring Boot/安全应用程序的问题 - 使 cypress 的使用非常容易,从 json 固定文件中读取凭据。您能否在测试期间使用不同的身份验证机制?
-
我认为这意味着您必须在 Auth0 生成的登录表单中输入电子邮件和地址。我想我可以做到这一点,但是我的测试实际上是在测试 Auth0 表单,这是我无法控制的。我宁愿生成一个令牌,然后只是指示 auth0 以某种方式使用它
-
不,这意味着我在运行我的功能 ui 测试时使用基于普通用户名/密码表单的安全性来回避将 oauth 与 cypress 集成的问题。
-
哦,所以您有两种身份验证方式。一个为所有用户提供 auth0,然后为 e2e 单独“隐藏”一个?这可能不适用于我的用例,因为 JWT 稍后用于授权属于不同服务的单独 REST 调用
-
是的,但基于表单的方式仅用于测试。以后的 REST 调用能否在赛普拉斯中被存根?意识到这可能会损害测试的集成方面。无论如何,我想你明白我的意思,当遇到问题时,躲避它..
标签: auth0 cypress auth0-lock