Skip to content

Instantly share code, notes, and snippets.

@davemo
Last active December 18, 2015 15:39
Show Gist options
  • Save davemo/5806100 to your computer and use it in GitHub Desktop.
Save davemo/5806100 to your computer and use it in GitHub Desktop.
A way to handle auth redirects for rails + angular
_(angular.module("app", [])).tap (app) ->
app.config ['$httpProvider', ($httpProvider) ->
# csrf header
$httpProvider.defaults.headers.common["XSRF-TOKEN"] = "inject token here"
# all the requests are XHR!
$httpProvider.defaults.headers.common["X-Requested-With"] = 'XmlHttpRequest'
# to handle 401s from rails
$httpProvider.responseInterceptors.push(cep.ng.interceptors.BroadcastSessionExpiredOn401)
]
def 'cep.ng.interceptors.BroadcastSessionExpiredOn401',
($rootScope, $q) ->
success = (response) -> response
error = (response) ->
if response.status is 401
deferred = $q.defer()
req =
config: response.config
deferred: deferred
$rootScope.$broadcast('session:expired')
deferred.promise
$q.reject(response)
(promise) -> promise.then(success, error)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment