Можно ли изменить URL-адрес запроса и заставить пользователя войти в другой URL-адрес? - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть два разных домена для одного приложения, например. test1.com.au и test2.co.uk .Я пытаюсь переадресовать пользователя из соответствующей страны на соответствующий URL-адрес после входа в систему, т. Е. Если австралийский пользователь войдет в систему с test2.co.uk, то он должен быть зарегистрирован и перенаправлен на домашнюю страницу test1.com.au.Я использовал устройство для аутентификации.Возможно ли получить это через JS?Когда пользователь входит в систему, получает страну пользователя через ajax-запрос, а затем отправляет запрос по другому адресу.Однако этот метод проходит через действие devise create, но не выполняет вход в систему, т. Е. Метод devise authenticate_user имеет current_signed_in_user nil.

$(document).ready(function() {
      var url, email;
      $("form#new_spree_user").submit(function(e){
        e.preventDefault();
        alert('Default prevent');
        email = document.getElementById('spree_user_email').value;
        $.ajax("/return_host", {
          type: "GET",
          beforeSend: $.rails.CSRFProtection,
          data: {
            email: email
          },
          success: function(data) {
            host = data["host"];
            console.log(host);
            url = host + "/spree_users/sign_in";
            $.post(url, $('form').serialize())
          }
        });
      });
    });

Возврат метода хоста на контроллере сеансов:

def return_host
    member = User.find_by(email: params[:email])
    country_code = member.site.code
    host = country_code == 'UK' ? 'http://test2.co.uk' : 'http://test1.com.au'

    respond_to do |format|
      format.json { render :json => { 'host': host } }
    end
  end

Какой наилучший способ решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...