http的basic认证问题

97 阅读1分钟

1.背景

小彭上几个月被调去开发一个单点登陆平台,由于是新的后端项目,所以出了一个问题,当我登录以后,调用接口返回的是401无权限,然后浏览器端就弹出一个alert窗口让用户输入用户名和密码,我当时只排查出来了是后端服务导致的登录失败,就交给后端处理了。

2.转机

今天在家看深入浅出nodejs,看到了http章节,发现在登陆校验的时候,有一种方法是basic登陆,这种登陆方法会把username和password使用base64进行加密,放在报文头中传输给后端进行登陆校验,所以应该是后端设置的问题,导致请求被basic登陆相关的方法捕获了,然后由于我们没有使用basic登陆,自然是过不了校验的,所以被自动返回了无权限,导致浏览器触发了默认行为

3.总结

很多时候你发现浏览器做出了你的预期之外的行为,大多数时候都和http报文有关系,多分析每一条你以前不知道的报文,应该能少费一点脑细胞。