Ruby on rails 基于令牌的跨域认证

Ruby on rails 基于令牌的跨域认证,ruby-on-rails,authentication,access-token,http-token-authentication,Ruby On Rails,Authentication,Access Token,Http Token Authentication,有两台服务器: 一个在域A上 另一个在不同的域B上 让我们分别称它们为A-server和B-server A-server是一个具有自己身份验证的主服务器,也是前端部分。 B-server是一种具有自身身份验证的服务 如何从js中的服务器A验证服务器B上的用户 我考虑基于令牌的身份验证,并将其添加到服务器B 现在它可以响应/sign.json路径并使用令牌进行身份验证 但令牌被放置在http头中。 所以,一切都应该正常,对吗? 但是这些头对于js是隐藏的,因为服务器(主A使用js,B使用基于

有两台服务器:

  • 一个在域A上
  • 另一个在不同的域B上
让我们分别称它们为A-server和B-server

A-server是一个具有自己身份验证的主服务器,也是前端部分。 B-server是一种具有自身身份验证的服务

如何从js中的服务器A验证服务器B上的用户

我考虑基于令牌的身份验证,并将其添加到服务器B

现在它可以响应
/sign.json
路径并使用令牌进行身份验证

但令牌被放置在http头中。 所以,一切都应该正常,对吗?
但是这些头对于js是隐藏的,因为服务器(主A使用js,B使用基于令牌的身份验证)有不同的域

有人能指出这种身份验证的适当实现吗

还有,应该如何做好呢

(目前,很难将身份验证放在一个位置并用于所有服务/服务器。)

这是关于http和令牌的一般问题,但我有具体的实现:

B-轨道4.2
gem“设计认证令牌”
宝石“机架cors”

//setup for rack-cors:
//in middlewares.rb
  config.middleware.insert_before 0, "Rack::Cors" do
    allow do
      origins ENV['CONFIG_ACTION_DISPATCH_DEFAULT_HEADERS_CONTROL_ALLOW_ORIGIN'] || '*'
      resource '*', headers: :any, 
      methods: [:get, :post, :options, :put, :patch, :delete],
      expose: ['access-token', 'expiry', 'token-type', 'uid', 'client']
    end
  end

正如您在安装程序中看到的,我添加了来自基于令牌的身份验证的公开头。

您曾经解决过这个问题吗?我们遇到了类似的问题,我们发现很难找到线索。你能解决这个问题吗?我们遇到了类似的问题,我们发现很难找到线索