基于令牌的跨域认证

时间:2015-11-21 20:13:41

标签: ruby-on-rails authentication access-token http-token-authentication

有两台服务器:

  • 域名A
  • 另一个在不同的域B上。

让他们分别称他们为A服务器和B服务器。

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

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

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

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

但令牌放在http-headers中。 所以,一切都应该是正常的,对吧? 但是这些头文件对于js是隐藏的,因为服务器(带有js的主要A和带有基于令牌的身份验证的B)具有不同的域。

有人可以指出这种认证的适当实施吗?

另外,它应该如何做好?

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

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

B - Rails 4.2
gem' devise_auth_token'
gem' rack-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

从设置中可以看出,我从基于令牌的身份验证中添加了Expose-Headers。

0 个答案:

没有答案