使用Cypress session测试时访问/admin/people/create报401未授权如何解决
Cypress session访问/admin/people/create返回401的原因定位
- 全局HTTP Basic Auth未携带:你仅在
cy.session内的cy.visit('/')请求中配置了auth参数,如果你的站点所有路径都开启了HTTP Basic Auth校验,后续未携带auth参数的cy.visit('/admin/people/create')会直接触发401。 - 登录动作未验证有效性:
cy.session回调中提交登录表单后,没有补充登录成功的断言(比如校验登录后跳转的路径、页头存在用户名称元素等),若登录本身执行失败,session缓存的就是未登录状态,访问需要登录权限的管理页自然返回401。 - 会话缓存范围不匹配:如果你的登录域名和
/admin/people/create所属域名/子域名不一致,Cypress默认缓存的cookie、本地存储范围没有覆盖到管理页域名,会导致访问管理页时未携带登录态凭证,触发权限校验失败。 - 实验性session功能缺陷:你使用的
experimentalSessionSupport是Cypress 12版本之前的实验性功能,存在会话缓存偶发丢失的已知问题,如果你的Cypress版本低于12.0,也可能出现登录态丢失的情况。
内容的提问来源于stack exchange,提问作者Kate Zhupan
相关产品推荐
相关产品推荐

