在标头中传递访问令牌而不是网址环回

时间:2017-09-19 14:40:25

标签: angularjs mongodb loopbackjs loopback angular-loopback

我是LoopBack的新手。我使用了它的默认服务器身份验证。

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

在此之后我从登录api获取访问令牌。

然后我必须在所有服务呼叫网址中传递它。

环回中是否有任何方式/设置允许我们在 http标头中传递它而不是在http请求中传递网址?

我正在使用angularjs。使用此$http.defaults.headers.common['Authorization'] = 'access_token'.

可以轻松为所有服务呼叫设置标头

但是如果我们必须在url param中传递它,那么我必须在每次服务调用中写它。

任何人都可以为 http标题中的角色或环回设置的所有请求建议在url param中设置access_token 的方式。

回答重复:这个问题是相关的方法(如何)在角度方面的http调用中传递令牌。

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

您可以在角色代码中使用请求拦截器,这会在每个Authorization token请求的标头中设置HTTP

创建工厂以在标题中注入Auth Token。

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

使用configsessionInjector推送到您的Angular $HTTPProvider,以便它拦截每个HTTP请求并为其注入身份验证令牌。

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

阅读this示例,了解如何使用http interceptors向您的HTTP请求中注入Auth token和其他有用的内容。