HTTP AUTH验证

2 篇文章 0 订阅

何为http auth?

http auth是一种基础的用户验证,原理是将用户名:密码base64加密后放在http的请求头部Authorization 发给服务器。

浏览器的做法

当你访问一个需要http auth验证的资源时,web server会去检查你的http请求头并且比对帐号密码,如果不成功就会相应的所请求的资源,否则就会返回401,浏览器在接收到401时会自动打开一个登陆窗口让你登陆,点击提交后会将输入的用户名密码base64加密后放在请求头部再次发送这次请求。

缺点

很明显,如果别人获取了你的http请求内容,将Authorization请求头解密后就能获得帐号密码,所以一般来说,http auth都是基于https的。

为什么会用到 http auth?

restful api

restful api 的一个特点即无状态,每次对敏感资源的访问都需要进行登陆验证,可以用http auth来很好的开发restful api。

纯js的ajax实现http auth验证。

懂了http auth的原理就很简单了,这里一个例子。

function get() {
        let xhr=null;
        if(window.XMLHttpRequest){
            xhr=new XMLHttpRequest();
        }else{
            xhr=new ActiveXObject("Microft.XMLHttp");
        }
        let data = {"username":'lyt',"password":'771251091'};

        xhr.open('GET','/api/user_info');
        xhr.onreadystatechange = function () {
            if(xhr.readyState == 4 && xhr.status == 200){
                alert(xhr.responseText);
            }
        };
        xhr.setRequestHeader("Authorization","Basic "+window.btoa("username:password")); //重点再此
        xhr.send();
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值