Facebook omniauth callback и #_ - PullRequest
       5

Facebook omniauth callback и #_

7 голосов
/ 24 августа 2011

Я использую Rails 3.1, Devise и Omniauth.

Проблема заключается в том, что при обратных вызовах Facebook в мое приложение URL-адрес заканчивается на #_.Затем, когда в действии обратного вызова я перенаправляю на что-то - например, /after_signin перенаправление приводит к /after_signin#_.

Любая идея, как удалить этот якорь из URL?

РЕДАКТИРОВАТЬ: Этоне имеет значения, что я положил в функцию обратного вызова.Даже простое перенаправление:

class Users::OmniauthCallbacksController < ApplicationController
  def facebook
    redirect_to "/after_callback"
  end
end

это приведет к переходу на /after_callback#_

Даже в обычном контроллере, если вы перейдете на /#_ и у вас будет какое-то перенаправление, оно будет перенаправлено науказанный путь с добавлением #_ в конце.

EDIT2: Я только что обнаружил, что сбой привязки в браузере является ошибкой.Таким образом, это должно быть обработано в стороне интерфейса.

1 Ответ

2 голосов
/ 30 мая 2012

Если вы уверены, что это проблема браузера, вы можете просто использовать JavaScript для обновления hash части window объекта location.Может быть, что-то вроде этого:

if (window.location.hash.search('#_') >= 0) {
    window.location.hash = '';
}
...