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
をアプリと設定ヘッダーに追加します。
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) {
ライブラリを使用してベース64で認証をエンコードするのではなく、次のように使用できます。
window.btoa("user:pass")
ほとんどのブラウザでサポートされています。
https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/btoa