0

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

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

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

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

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

我正在使用 angularjs。使用这个很容易为所有服务调用设置标题 $http.defaults.headers.common['Authorization'] = 'access_token'.

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

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

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

4

2 回答 2

2

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

于 2017-09-26T18:22:04.337 回答
0

您可以在 Angular 代码中设置请求拦截器,它将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');
}]);

阅读示例以了解如何使用http interceptors向 HTTP 请求注入Auth token和其他有用的东西。

于 2017-09-19T14:52:15.200 回答