我是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调用中传递令牌。
答案 0 :(得分:2)
Loopback允许您默认使用Authorization
标头。请参阅:https://loopback.io/doc/en/lb3/Making-authenticated-requests.html#making-authenticated-requests-with-access-tokens
答案 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;
}]);
使用config
将sessionInjector
推送到您的Angular $HTTPProvider
,以便它拦截每个HTTP请求并为其注入身份验证令牌。
module.config(['$httpProvider', function($httpProvider) {
$httpProvider.interceptors.push('sessionInjector');
}]);
阅读this示例,了解如何使用http interceptors
向您的HTTP请求中注入Auth token
和其他有用的内容。