Apiary认证描述配置失效,配置Basic Auth后反复弹出登录框如何解决
问题原因
- 你编写的API Blueprint存在响应匹配顺序问题,Apiary Mock服务默认按照从上到下的顺序匹配请求规则,你将401未授权响应放在了规则最前列,无论请求是否携带正确的Authorization头,都会优先返回401状态码,触发浏览器反复弹出身份验证窗口。
- 当前代码不符合API Blueprint语法规范:同一接口操作下,携带自定义参数/头的Request块需要放置在对应匹配的Response块之前,你当前的Request块位置异常,导致正确的鉴权规则无法被识别。
解决方法
调整代码的结构顺序,将携带正确Authorization头的请求规则、对应200响应放在401响应之前,修正后的代码如下:
FORMAT: 1A # Basic Auth API ## Basic Auth protected resource [/protected] ### Status [GET] + Request + Headers Authorization: Basic dTE6dDE= + Response 200 (application/json) { "status": "ok" } + Response 401 + Headers WWW-Authenticate: Basic realm="protected"
调整后,携带正确Authorization头的请求会优先匹配返回200响应,未携带有效头的请求才会返回401触发验证。
内容的提问来源于stack exchange,提问作者Josie Zhang
相关产品推荐
相关产品推荐

