You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cypress跨双超域+AntiforgeryToken场景下测试Nuxt+.NET应用重定向故障

第一步:修正Chromium启动参数

你当前配置的启动参数存在重复项,且缺少2个针对SameSite Cookie的关键禁用配置,替换cypress/plugins/index.js中的对应逻辑为以下代码:

on('before:browser:launch', (browser = {}, launchOptions) => {
  if (browser.family === 'chromium') {
    launchOptions.args.push(
      "--disable-features=SameSiteByDefaultCookies,CookiesWithoutSameSiteMustBeSecure,SameSiteDefaultChecksMethodRigorously,CrossSiteDocumentBlockingIfIsolating,IsolateOrigins,site-per-process"
    );
  }
  return launchOptions
});

第二步:适配Cypress版本的跨域配置

如果你使用的是Cypress 12及以上版本,chromeWebSecurity配置已废弃,需要在cypress.config.js中添加以下配置:

module.exports = defineConfig({
  e2e: {
    experimentalSkipDomainCheck: true,
    experimentalSessionAndOrigin: true,
    // 其余原有配置保留
  }
})

第三步:用cy.origin包裹SSO域操作

所有操作SSO域名的逻辑(包括填写登录表单、提交请求)必须放在cy.origin回调中,否则Cypress会强制隔离跨域上下文导致Cookie丢失,示例代码如下:

cy.visit('你的产品地址') // 触发跳转到SSO
cy.origin('你的SSO根域名', () => {
  cy.get('#username').type('测试账号')
  cy.get('#password').type('测试密码')
  cy.get('#submit').click()
})
// 回调结束后会自动切回产品域名上下文
cy.url().should('include', '你的产品域名路径')

第四步:强制修正SSO响应的Cookie属性

如果上述配置仍未生效,可以主动拦截SSO认证接口的响应,强制修改Set-Cookie头符合跨域要求:

cy.intercept('POST', '你的SSO登录提交接口地址', (req) => {
  req.continue((res) => {
    const cookies = res.headers['set-cookie']
    if (cookies) {
      res.headers['set-cookie'] = cookies.map(cookie => {
        // 替换原有的SameSite属性,添加Secure标记
        return cookie.replace(/SameSite=(Lax|Strict)/i, 'SameSite=None; Secure')
      })
    }
  })
}).as('ssoLogin')

第五步:兜底方案:跳过前端SSO流程

直接调用SSO的后台认证接口获取凭证,主动将认证Cookie写入产品域名上下文,完全避开跨域Cookie问题:

// 后台请求SSO接口拿token和Cookie凭证
cy.request('POST', 'SSO后台登录接口地址', {
  username: '测试账号',
  password: '测试密码'
}).then((res) => {
  // 提取响应中的认证Cookie信息,逐个写入产品域名
  cy.setCookie('你的产品认证Cookie名', res.body.token, {
    domain: '你的产品根域名',
    sameSite: 'none',
    secure: true
  })
})
// 直接访问产品地址即可跳过登录
cy.visit('你的产品地址')

内容的提问来源于stack exchange,提问作者Alexandre Q

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 13:30:00