У меня есть приложение ember, использующее API Rails с приложением для аутентификации, более или менее следуя проекту ember-auth-demo github.EmberAuth and Rails 3 - сеанс cookie палочки вокруг после выписки, рельсы обрабатывают пользователя как аутентифицированный
Все работает, но в моем тестировании я заметил, что если я подпишу в и и затем попытаться зарегистрировать новую учетную запись, рельсы жалуется:
Filter chain halted as :require_no_authentication rendered or redirected
Completed 302 Found in 2ms (ActiveRecord: 0.2ms)
Googling показал, что это предотвратить аутентифицированные пользователи от создания новых учетных записей, которые кажутся правильной политикой, я не должен обязательно обходить.
Однако, это любопытно, потому что мое внешнее приложение ember не находится в аутентифицированном состоянии. Глядя на мой местный магазин печенья, remember_token
успешно уничтожается при выводе. Однако cookie сеанса все еще висит вокруг. Если я вручную уничтожу это, тогда все вернется к работе, как ожидалось, пользователь не считается аутентифицированным внутренним приложением и нормально обрабатывает запрос.
Для краткости соответствующие файлы в этом суть: https://gist.github.com/DVG/5975064, но мои функции sign_out здесь:
#EmberAuth Signout Method
App.ApplicationController = Ember.Controller.extend
signOut: ->
App.Auth.signOut()
App.Auth.destroySession()
#Rails SessionsController#destroy
def destroy
return missing_params unless params[:auth_token]
resource = resource_class.find_by_authentication_token(params[:auth_token])
return invalid_credentials unless resource
resource.reset_authentication_token!
render json: {user_id: resource.id}, status: 200
end