Передать токен доступа в заголовок вместо обратной петли URL

Я новичок в LoopBack. Я использовал аутентификацию сервера по умолчанию.

module.exports = function enableAuthentication(server) {
  // enable authentication
  server.enableAuth();
};

После этого я получаю токен доступа из API входа.

Затем я должен передать его во всех URL-адресах вызова службы.

Есть ли какой-либо способ / настройка в loopback, который позволяет нам передавать его в заголовке http вместо URL-адреса в HTTP-запросе?

Я использую angularjs. С помощью этого $http.defaults.headers.common['Authorization'] = 'access_token'. легко установить заголовок для всех вызовов службы.

Но если нам нужно передать его в параметре url, я должен писать его при каждом вызове службы.

Может ли кто-нибудь предложить способ установить access_token в параметре url для всех запросов из настроек angular или loopback, чтобы разрешить его в заголовке http.

Ответ на дубликат: этот вопрос был связан с методом (как) передать токен в заголовке в HTTP-вызове со стороны angular.


person Ankur Akvaliya    schedule 19.09.2017    source источник
comment
Это то, что вы ищите? stackoverflow .com / questions / 30359463 /   -  person titogeo    schedule 19.09.2017
comment
Это не работает, если я установил access_token в заголовке http   -  person Ankur Akvaliya    schedule 19.09.2017


Ответы (2)


Loopback позволяет использовать заголовок Authorization по умолчанию. См .: https://loopback.io/doc/en/lb3/Making-authenticated-requests.html#making-authenticated-requests-with-access-tokens

person nVitius    schedule 26.09.2017
comment
Вы решили мою проблему. Единственная проблема заключалась в том, что я передавал headers['Authorization'] = 'Bearer '+Authtoken в HTTP-запросе. Вместо этого мне пришлось передать headers['Authorization'] = Authtoken в heep-запросах. - person Ankur Akvaliya; 27.09.2017

У вас может быть перехватчик запросов в вашем коде Angular, который будет устанавливать Authorization token в заголовке каждого HTTP запроса.

Создайте фабрику для вставки токена аутентификации в заголовок.

module.factory('sessionInjector', function() {  
    var sessionInjector = {
        request: function(config) {
            config.headers['Authorization'] = 'Bearer '+Authtoken;
            return config;
        }
    };
    return sessionInjector;
}]);

Используйте config, чтобы отправить sessionInjector на ваш Angular $HTTPProvider, чтобы он перехватил каждый HTTP-запрос и внедрил в него токен аутентификации.

module.config(['$httpProvider', function($httpProvider) {  
    $httpProvider.interceptors.push('sessionInjector');
}]);

Прочтите этот пример, чтобы узнать, как можно использовать http interceptors для добавления Auth token и других полезных вещей в ваши HTTP-запросы.

person Ravi Shankar Bharti    schedule 19.09.2017
comment
если я использую config.headers['Authorization'] = 'Bearer '+Authtoken;, он не работает с обратной связью. как я могу добавить параметр запроса от перехватчика? - person Ankur Akvaliya; 19.09.2017
comment
какой параметр запроса вы хотите добавить? - person Ravi Shankar Bharti; 20.09.2017
comment
Я хочу добавить access_token. - person Ankur Akvaliya; 20.09.2017
comment
Есть ли конкретная причина для отправки access_token в качестве параметра запроса? - person geek_guy; 20.09.2017
comment
Loopback аутентифицирует запросы, используя его. - person Ankur Akvaliya; 26.09.2017