【问题标题】:How to pass basic auth after SSO redirect?SSO重定向后如何通过基本身份验证?
【发布时间】:2020-06-15 11:17:15
【问题描述】:

我是赛普拉斯和 JS 的新手。如果未登录,我正在测试的应用程序将重定向到存根 IDP 页面。该应用程序也落后于基本身份验证。我在测试中所做的只是

cy.visit("https://username:password@app_url.com")

这会将我重定向到我单击登录按钮的存根 IDP 页面

cy.contains('button', 'Log in').click()。这将重定向回应用主页。

但是,在重定向时,它提示我再次填写基本身份验证。有没有办法传递重定向后记住的基本身份验证标头?

存根 IDP 用于基于 SAML 的 SSO,工作量太大,或者我应该说我缺乏创建服务器请求以获取身份验证令牌的知识。所以现在寻找一个简单的解决方法。

【问题讨论】:

    标签: cypress


    【解决方案1】:

    我遇到了同样的问题,我刚刚使用 cy.intercept() 解决了它!

    您必须在新的重定向 URL 上使用 cy.intercept 并将基本授权标头添加到请求中。

    1. 生成基本认证头,你可以在这里生成:https://www.blitter.se/utils/basic-authentication-header-generator/

    2. 找到目标网址,为您提供应用主页。

    • 可能有几个重定向,你可以在打开模式下运行测试时找到最后一个带有基本身份验证的重定向,取消弹出窗口后,你会在运行器中看到这个

    • “新网址”就是您想要的那个
    1. 在测试中,在点击按钮前添加intercept()命令。在传出请求中添加授权标头,在重定向测试时触发。
    cy.intercept(`<TARGET_URL>`, (req) => {
      req.headers['Authorization'] = `<BASIC_AUTH_HEADER_VALUE>`;
    });
    

    您可以在此处阅读有关将标头添加到传出请求和拦截功能的更多信息: https://docs.cypress.io/api/commands/intercept#Adding-a-header-to-an-outgoing-request

    【讨论】:

      猜你喜欢
      • 2013-12-31
      • 1970-01-01
      • 2013-10-29
      • 1970-01-01
      • 2017-09-18
      • 2014-08-04
      • 2021-06-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多