Я использую гем omniauth-google-oauth2
В моем случае у меня есть 2 разные области действия:
Я хотел бы использовать Google Auth для обоих, но поскольку существует только один URL-адрес обратного вызова, я не знаю, как определить, идет ли эта аутентификация от FrontUser или и от AdminUser.
Я не могу использовать «имя» или «адрес электронной почты» в качестве идентификатора области, потому что одно и то же имя / адрес электронной почты могут быть в обеих областях.
Я попытался определить 2 различных URL-адреса обратного вызова и добавлениепараметр redirect_uri
для первого URL-адреса аутентификации:
Для входа администратора:
<%= link_to "Login with Google", "/auth/google_oauth2?redirect_uri=http://example.com/admin/auth/google_oauth2/callback" %>
Для входа Front:
<%= link_to "Login with Google", "/auth/google_oauth2?redirect_uri=http://example.com/front/auth/google_oauth2/callback" %>
Работает почти идеально,проблема в том, что request.env['omniauth.auth']
пусто, как мы видели в других выпусках .
Я тоже пробовал это:
<%= link_to "Login with Google", "/auth/google_oauth2?callback_path=/admin/auth/google_oauth2/callback" %>
Но параметр callback_path
просто игнорируется.
Если бы я только мог хотя бы отправить параметр флага, который был бы возвращен в обратном вызове, был быдостаточно.
Какое решение я могу реализовать?