美文网首页
(转载)HTTP AUTH验证

(转载)HTTP AUTH验证

作者: dbc94a66f502 | 来源:发表于2019-12-23 10:10 被阅读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();
        }
    

    ————————————————
    版权声明:本文为CSDN博主「岚漾忆雨」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/baidu_35085676/article/details/78648311

    补充,在spring里面实现http auth

    import org.springframework.util.Base64Utils;
    //省略部分import
    public String getToken(String username) {
            Map<String, String> header = new HashMap<>();
            header.put("Authorization", "Basic " + Base64Utils.encodeToString(new String(clientId + ":" + clientSecret).getBytes()));
            Map<String, Object> params = new HashMap<>();
            params.put("username", username);
            String result = http.get(getTokenUrl, params, header);
            return result;
        }
    

    相关文章

      网友评论

          本文标题:(转载)HTTP AUTH验证

          本文链接:https://www.haomeiwen.com/subject/zhqznctx.html