WedX - журнал о программировании и компьютерных науках

Выход Google omniauth не удаляет сеанс в Rails (гем 'google_oauth2')

Я использую гем google_oauth2 для аутентификации пользователей с помощью Google.

Вход и выход работают нормально. Однако есть одна проблема.

Когда пользователь выходит из приложения и снова пытается войти с помощью Google, Google поддерживает сеанс пользователя, и пароль Google больше не запрашивается. Есть ли способ уничтожить сеанс Google или сократить время ожидания до очень низкого числа?

Мой контроллер обратного вызова выглядит примерно так:

class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
  def google_oauth2
      @user = User.find_for_google_oauth2(request.env["omniauth.auth"], current_user)

      if @user.persisted?
        flash[:notice] = I18n.t "devise.omniauth_callbacks.success", :kind => "Google"
        sign_in_and_redirect @user, :event => :authentication
      else
        session["devise.google_data"] = request.env["omniauth.auth"]
        redirect_to new_user_registration_url
      end
  end
end

Чтобы выйти, я использую следующий код,

  def logout
    sign_out current_user
    session = {}
    redirect_to home_page_path
  end

  • Здравствуйте, aadarsh, как вы решили эту проблему. Это происходит и в Omniauth Facebook и Twitter. 26.10.2015
  • Всем привет! К сожалению, мне не удалось решить эту проблему. Мы не можем изменять файлы cookie для других веб-сайтов (ограничение браузера). Одно из решений — попросить пользователей очистить файлы cookie, если они застревают. Я работал над веб-приложением домашней страницы iPad, и очистка файлов cookie браузера не приводила к удалению файлов cookie в контейнере веб-приложения. Я застрял там. 27.10.2015

Ответы:


1

У этого нет простого/краткого ответа. Важная часть заключается в том, что в целом пользователям не нравится выходить из Google, когда они выходят из RP. Более важным вопросом является угроза, от которой вы пытаетесь защититься, выполнив выход пользователя из своей учетной записи Google (пожалуйста, укажите, и мы можем обсудить дальше). Теперь все больше и больше людей имеют личные устройства и домашние (общие) устройства, которые находятся в доверенной среде, и все эти пользователи не любят выходить из системы. Когда вы в последний раз выходили из своей учетной записи Google на устройстве Android?

Я предлагаю, чтобы «выход» очистил файлы cookie для вашего сайта и перенаправил пользователя на страницу, которая объясняет: «Вы вышли из этого сайта. Войдите снова. Примечание. Чтобы полностью выйти, пожалуйста, выйдите из своего Аккаунт Google" и свяжите аккаунт Google с домашней страницей Google.

30.09.2014
Новые материалы

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


Для любых предложений по сайту: wedx@cp9.ru