Я использую SDK Facebook JS для единого входа с моим приложением rails. Я перевел php-код из примера Facebook (внизу страницы в разделе «Единый вход с JavaScript SDK») в ruby.
Казалось, что это работает отлично, но я заметил одного пользователя, который получает постоянные перенаправления при попытке войти в систему. Логи выглядят так:
Processing UsersController#login (for X.X.X.X at 2010-05-22 17:25:55) [GET]
Redirected to http://myapp.com/
Completed in 0ms (DB: 0) | 302 Found [http://myapp.com/login]
(столько раз, сколько мой несчастный пользователь оставляет браузер, перенаправляющий в цикле).
Мой код на стороне клиента включает обратный вызов с «auth.sessionChange»:
FB.Event.subscribe('auth.sessionChange', function(response) {
if (response.session) {
// A user has logged in, and a new cookie has been saved
window.location = "/login";
} else {
// The user has logged out, and the cookie has been cleared
window.location = "/logout";
}
});
Так что мне кажется, что это событие постоянно запускается. Хотя я не могу проверить эту теорию, потому что не могу воссоздать этот сценарий локально.
Я не думаю, что это контроллер рельсов. Код здесь просто:
def login
# if first time user create db entry
# now redirect back to where the user came from
begin
redirect_to :back
rescue ActionController::RedirectBackError
redirect_to root_url
end
end
Кто-нибудь имеет представление о том, что происходит?