当前位置:  开发笔记 > 编程语言 > 正文

在angularjs中为此HTTP GET添加HTTP基本身份验证

如何解决《在angularjs中为此HTTPGET添加HTTP基本身份验证》经验,为你挑选了2个好方法。

我有一个现有的angularjs代码,它可以生成HTTP GET.下面提取的是控制器内部的一些相关代码.

    .controller('imptViewCtrl', ['$scope', '$http', 
        function ($scope, $http, ) {
                    var url = $configuration.webroot + '/impt/list?list=testlist';
                    $http.get(url).then(function (response) {
                               tableData = response.data;
                               });
        }]);

我想将HTTP基本身份验证添加到HTTP GET.用户名是foo,密码是bar.如何才能做到这一点?



1> user5698801..:

因为在基本身份验证中,用户名和密码是由base64解码的.您需要先找一个图书馆来完成这项工作.

https://github.com/ninjatronic/angular-base64

之后,加载base64到您的应用程序和配置标头.

angular
    .module('myApp', ['base64'])
    .config(function($httpProvider, $base64) {
        var auth = $base64.encode("foo:bar");
        $httpProvider.defaults.headers.common['Authorization'] = 'Basic ' + auth;
    })

get如果您愿意,还可以提供认证标题以便单独运行.

var auth = $base64.encode("foo:bar"), 
    headers = {"Authorization": "Basic " + auth};
$http.get(url, {headers: headers}).then(function (response) {


为什么你需要一个库来做base64?为什么不使用btoa()https://www.w3schools.com/jsref/met_win_btoa.asp?

2> ryan.wise..:

您可以使用以下命令,而不是使用库来编写基础64的auth;

window.btoa("user:pass")

大多数浏览器都支持它.

https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/btoa


@DRaehal对请求进行身份验证的方式不依赖于请求的HTTP谓词.如果目标端点需要基本身份验证,则只应用该头,无论是POST,PUT等.
推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有