有两台服务器:
让他们分别称他们为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。