在 header 而不是 url 环回中传递访问令牌

Pass access token in header instead of url loopback

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

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

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

然后我必须在所有服务调用中传递它 url。

环回中是否有任何 way/setting 允许我们在 http header 中传递它而不是在 http 请求中传递 url?

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

很容易为所有服务调用设置 header

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

任何人都可以建议一种方法 在 url 参数 中为来自 angular 的所有请求设置 access_token 或环回设置以允许它进入http header.

重复的答案:这个问题是相关的方法(如何)在 header 中从 angular 端的 http 调用中传递令牌。

您可以在 Angular 代码中包含 request Interceptor,这将在每个 HTTP 的 Header 中设置 Authorization token ] 请求。

创建工厂以在 header.

中注入 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 interceptorsAuth token 和其他有用的东西注入到您的 HTTP 请求中。

Loopback 允许您默认使用 Authorization header。参见:https://loopback.io/doc/en/lb3/Making-authenticated-requests.html#making-authenticated-requests-with-access-tokens