AngularJS :Как отправить токен авторизации с запросами $resource?

Я хочу отправить токен авторизации при запросе ресурса из моего API.

Я реализовал службу, используя $resource:

factory('Todo', ['$resource', function($resource) {
 return $resource('http://localhost:port/todos.json', {port:":3001"}, {
   query: {method: 'GET', isArray: true}
 });
}])

И у меня есть сервис, который хранит токен авторизации:

factory('TokenHandler', function() {
  var tokenHandler = {};
  var token = "none";

  tokenHandler.set = function( newToken ) {
    token = newToken;
  };
  tokenHandler.get = function() {
    return token;
  };

  return tokenHandler;
});

Я хотел бы отправлять токен из tokenHandler.getс каждым запросом, отправляемым через службу Todo. Я смог отправить его, поместив его в вызов определенного действия. Например, это работает:

Todo.query( {access_token : tokenHandler.get()} );

Но я бы предпочел определить токен доступа _в качестве параметра в службе Todo, так как он должен отправляться при каждом вызове. И улучшить DRY. Но все в фабрике выполняется только один раз, поэтому токен доступа _должен быть доступен до определения фабрики, и после этого он не может измениться.

Есть ли способ добавить в службу динамически обновляемый параметр запроса?

62
задан Nils Blum-Oeste 24 June 2012 в 09:26
поделиться