我正在使用Angular.js使用Restangular构建客户端应用程序。 问题是,我使用wsse头实现了摘要式身份验证,我必须在每次向REST服务器发出请求时生成。
我看到Restangular提供了一个函数:addFullRequestInterceptor()。
所以现在,我正在尝试在RestangularProvider中使用它来配置它在这个文件restangular.js中:
// Config Restangular
app.config(function(RestangularProvider) {
RestangularProvider.setBaseUrl(applicationConfig.SERVER_URL);
RestangularProvider.setDefaultHeaders({'Content-Type': 'application/json'});
RestangularProvider.addFullRequestInterceptor(
function (element, operation, route, url, headers, params, httpConfig) {
// Here is my header generation.
$http.defaults.headers.common['X-WSSE'] =
TokenHandler.getCredentials(
AuthHandler.authentication.user.username,
AuthHandler.authentication.secret);
return {
element: element,
headers: headers,
params: params,
httpConfig: httpConfig
};
});
});
但是我有一个注射问题而且我找不到如何注射我的TokenHandler服务&我的AuthHandler服务能够知道用户是否已经登录,以及他是否有localstroage。
感谢您的帮助;)
答案 0 :(得分:1)
问题是在.config
阶段,服务(如AuthHandler
和TokenHandler
尚未实例化,因此您需要使用{{}手动实例化它们(及其依赖项) 1}}(可注入$injector
块):
config