からログアウトして作ることができない私は、GETを介してログインする工夫認証を作ったが、それは、このコードをAngular.js使ってログインすることができませんでした:は工夫が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')
考案のログアウト動作がいるようですランダムになる - 時にはログアウトする、時にはログアウトしない。 ブラウザのアドレスバーに/users/sign_out
と入力すると、常にログアウトします。 [OK]を
は、私がAngular.jsコード次キャッシュの問題を取り除くために要求を投稿する工夫認証のログを切り替えて使用:
$scope.logout = ->
$http.post('/users/sign_out').success ->
$location.path('editor')
それは罰金、いつものように、その後ログアウト初めて私はログアウトすることができませんでした。
私は何が起こるかを見るために私自身の方法を作ることを決めた:、
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
とsign_out
後current_user
は常にゼロであることを検出したが、その後、いくつかの奇跡によって角度アプリケーションはApiControllerの他のメソッドにアクセスするために管理しますcurrent_userはそこにはありません!
私はそれを理解していません。さて、ログアウトリクエストの直後(または同時に)に、他のHTTPリクエストに続いて、認証クッキーとDevise再ログインを渡すかもしれないが、は、クッキーで渡されたセッションIDが期限切れにならないようにするsign_outメソッドの呼び出し直後ですか?
あなたはsign_outを作成しましたか?[ルート:devise.rbでルートを取得しますか?](http://stackoverflow.com/questions/6557311/no-route-matches-users-sign-out-devise-rails-3 ) – shicholas
@shicholas:もちろん – Paul
どのようにレールクッキーまたはngクッキー? – shicholas