是否可以更改请求网址并强制用户登录到其他网址?

时间:2018-11-27 00:16:14

标签: ruby-on-rails ruby session ruby-on-rails-5

对于同一个应用程序,我有两个不同的域,例如。 test1.com.au test2.co.uk 。我正在尝试让登录后来自各个国家的用户重定向到相应的网址,即如果澳大利亚用户从test2.co.uk登录,则应该登录并重定向到test1.com.au主页。我已使用devise进行身份验证。 是否有可能通过js获得?当用户登录时,通过ajax请求获取用户所在的国家/地区,然后在不同的url上发送请求。 但是,此方法经过设计创建操作,但并未真正登录用户,即设计 authenticate_user 方法具有 current_signed_in_user 无效。

$(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

解决这个问题的最佳方法是什么?

0 个答案:

没有答案