【问题标题】:Pass access token in header instead of url loopback在标头中传递访问令牌而不是 url 环回
【发布时间】:2018-02-28 09:50:32
【问题描述】:

我是 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 参数中设置 access_token 来处理来自角度或环回设置的所有请求,以允许它在 http 标头中。

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

【问题讨论】:

标签: angularjs mongodb loopbackjs loopback angular-loopback


【解决方案1】:

【讨论】:

  • 你解决了我的问题。唯一的问题是我在 http 请求中传递了headers['Authorization'] = 'Bearer '+Authtoken。相反,我不得不在 heep 请求中传递 headers['Authorization'] = Authtoken。
【解决方案2】:

您可以在 Angular 代码中添加 request Interceptor,它将在每个 HTTP 请求的 Header 中设置 Authorization token。

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

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');
}]);

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

【讨论】:

  • 如果我使用config.headers['Authorization'] = 'Bearer '+Authtoken;,它不适用于环回。如何从拦截器中添加查询参数?
  • 您要添加什么样的查询参数?
  • 我要添加access_token。
  • 发送 access_token 作为查询参数的任何具体原因?
  • Loopback 使用它对请求进行身份验证。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-28
  • 1970-01-01
  • 2018-06-24
  • 2018-07-08
  • 1970-01-01
  • 2019-12-04
  • 2020-05-25
相关资源
最近更新 更多