मैं के माध्यम से लॉग आउट करने के वसीयत प्रमाणीकरण किया जाता है, लेकिन यह इस 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
दर्ज करता हूं, तो यह हमेशा लॉग आउट होता है।
ठीक है, मैं वसीयत प्रमाणीकरण की लॉग बाहर बंद अनुरोध पोस्ट करने के लिए कैशिंग समस्याओं से छुटकारा पाने के और प्रयोग किया जाता 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 अनुरोध का पालन कर सकते हैं, ठीक बाद (या साथ ही साथ) लॉगआउट अनुरोध के बाद, प्रमाणीकरण कुकी और डेविस री-लॉग इन पास करते हुए, लेकिन कुकी में पारित सत्र आईडी समाप्त नहीं होनी चाहिए sign_out विधि के कॉल के तुरंत बाद ?!
क्या आपने अपना साइन_आउट किया [मार्ग ए: devise.rb में मार्ग प्राप्त करें?] (Http://stackoverflow.com/questions/6557311/no-route-matches-users-ign-out-devise-rails-3) – shicholas
@ शिचोलस: बेशक – Paul
रेल कुकीज़ या एनजी कुकीज़ के बारे में कैसे? – shicholas