在 angularjs 中向此 HTTP GET 添加 HTTP 基本身份验证
Add HTTP basic authentication to this HTTP GET in angularjs
我有一个生成 HTTP GET 的现有 angularjs 代码。下面摘录了控制器内部的一些相关代码。
.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
。如何做到这一点?
因为在基本认证中,用户名和密码是通过base64解码的。您需要先找到一个图书馆来做这项工作,以确保舒适。
https://github.com/ninjatronic/angular-base64
之后,将 base64
加载到您的应用并配置 headers。
angular
.module('myApp', ['base64'])
.config(function($httpProvider, $base64) {
var auth = $base64.encode("foo:bar");
$httpProvider.defaults.headers.common['Authorization'] = 'Basic ' + auth;
})
如果您愿意,您也可以单独提供身份验证 header 到 get
功能。
var auth = $base64.encode("foo:bar"),
headers = {"Authorization": "Basic " + auth};
$http.get(url, {headers: headers}).then(function (response) {
与其使用库通过 base 64 对您的身份验证进行编码,不如使用:
window.btoa("user:pass")
大多数浏览器都支持它。
https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/btoa
我有一个生成 HTTP GET 的现有 angularjs 代码。下面摘录了控制器内部的一些相关代码。
.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
。如何做到这一点?
因为在基本认证中,用户名和密码是通过base64解码的。您需要先找到一个图书馆来做这项工作,以确保舒适。
https://github.com/ninjatronic/angular-base64
之后,将 base64
加载到您的应用并配置 headers。
angular
.module('myApp', ['base64'])
.config(function($httpProvider, $base64) {
var auth = $base64.encode("foo:bar");
$httpProvider.defaults.headers.common['Authorization'] = 'Basic ' + auth;
})
如果您愿意,您也可以单独提供身份验证 header 到 get
功能。
var auth = $base64.encode("foo:bar"),
headers = {"Authorization": "Basic " + auth};
$http.get(url, {headers: headers}).then(function (response) {
与其使用库通过 base 64 对您的身份验证进行编码,不如使用:
window.btoa("user:pass")
大多数浏览器都支持它。
https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/btoa