У меня есть два разных домена для одного приложения, например. 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
Какой наилучший способ решить эту проблему?