在我的Rails-api应用程序中,我使用Devise
gem,在进行身份验证时会返回Headers中的所有关键信息(Access-Token,UID,Client等),如下所示:
Access-Token →DIbgreortZbCYKqzC8HdNg
Client →Y6J5oTIqS7Gc_-h9xynBQ
Uid →email2@example.com
我希望那些人在响应中。有没有办法实现这个目标?
答案 0 :(得分:0)
Rails为您提供了一个请求对象,因此您可以从控制器的标题中获取所需的任何内容。
def some_action
@mime_type = request.headers["Content-Type"] # => "text/plain"
@token = request.headers["key-for-your-token-here"]
end
然后您可以将其传递给您的视图,也可以通过request.body
将其插入响应正文,就像将任何键/值对插入哈希一样。
ActionDispatch :: Request的文档在这里找到: http://api.rubyonrails.org/classes/ActionDispatch/Request.html#method-i-headers
更新:
创建一个自定义方法,并查看运行标头哈希所需的时间。如果时间长,您可以使用它来找到您正在寻找的确切嵌套并更改它。
def find_token(parent, request.headers)
request.headers.each {|key, value|
if value.is_a?(Hash)
find_token(key, value)
elsif key == 'THE TOKEN KEY HERE'
return value
else
next
end
}
end