ho fatto l'autenticazione Devise per uscire via GET, ma non poteva fare il login utilizzando questo codice Angular.js:Non può fare Devise per eseguire il logout Angular.js
$scope.logout = ->
$http.get('/users/sign_out').success ->
#If it does not redirect from 'editor' to 'login' then you haven't actually logged out
$location.path('editor')
comportamento di logout di Devise sembra essere casuali - a volte si disconnette, a volte no. E se inserisco /users/sign_out
nella barra degli indirizzi del browser, si disconnette sempre.
Ok, ho acceso log del autenticazione Devise fuori a Inserisci richiesta per sbarazzarsi di problemi di memorizzazione nella cache e utilizzati seguente codice Angular.js:
$scope.logout = ->
$http.post('/users/sign_out').success ->
$location.path('editor')
La prima volta è disconnesso bene, come sempre, ma poi Non potevo farlo per uscire.
ho deciso di fare il mio metodo per vedere cosa succede:
match '/logout' => 'api#logout', :via => :post
class ApiController < ApplicationController
before_filter :authenticate_user!
def logout
sign_out
if current_user
puts 'Has not signed out!'
else
puts 'Has signed out!'
end
head :ok
end
end
e ha rilevato che dopo sign_out
il current_user
è sempre pari a zero, ma poi l'applicazione angolare per qualche miracolo riesce ad accedere ad altri metodi di ApiController, e current_user non è nullo lì!
Non lo capisco. Ok, supponiamo che possa seguire qualche altra richiesta HTTP, subito dopo (o allo stesso tempo) richiesta di logout, passando il cookie di autenticazione e Devise ri-login, ma non dovrebbe essere scaduto l'ID di sessione passato in cookie subito dopo la chiamata del metodo sign_out ?!
hai fatto il tuo sign_out [percorso a: ottieni percorso in devise.rb?] (Http://stackoverflow.com/questions/6557311/no-route-matches-users-sign-out-devise-rails-3) – shicholas
@shicholas: ovviamente – Paul
che ne dici di cookie di rails o di cookie ng? – shicholas