Skip to content

Instantly share code, notes, and snippets.

@nblumoe
Created July 5, 2012 07:34
Show Gist options
  • Star 38 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save nblumoe/3052052 to your computer and use it in GitHub Desktop.
Save nblumoe/3052052 to your computer and use it in GitHub Desktop.
AngularJS service to send auth token with $resource requests
.factory('TokenHandler', function() {
var tokenHandler = {};
var token = "none";
tokenHandler.set = function( newToken ) {
token = newToken;
};
tokenHandler.get = function() {
return token;
};
// wrap given actions of a resource to send auth token with every
// request
tokenHandler.wrapActions = function( resource, actions ) {
// copy original resource
var wrappedResource = resource;
for (var i=0; i < actions.length; i++) {
tokenWrapper( wrappedResource, actions[i] );
};
// return modified copy of resource
return wrappedResource;
};
// wraps resource action to send request with auth token
var tokenWrapper = function( resource, action ) {
// copy original action
resource['_' + action] = resource[action];
// create new action wrapping the original and sending token
resource[action] = function( data, success, error){
return resource['_' + action](
angular.extend({}, data || {}, {access_token: tokenHandler.get()}),
success,
error
);
};
};
return tokenHandler;
});
@denen99
Copy link

denen99 commented Aug 23, 2013

Is there a way to persist this across browser refreshes ?

@pavelnikolov
Copy link

@denen99 you can use cookies with ng-cookie - here you can find how to do it http://stackoverflow.com/questions/10961963/how-to-access-cookies-in-angularjs. The documentation is good enough yet http://docs.angularjs.org/api/ngCookies.$cookies

@JeremyPinhel
Copy link

How can i custom headers for each resource action ?

@ahmadina
Copy link

is this secure?

@venkatramachandran
Copy link

How would I modify this to add custom headers?

@zaypen
Copy link

zaypen commented Sep 14, 2015

I had lost my 'params' while using this way.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment