在我的rails应用程序中,我能够获得在请求标头中传递的令牌Authorization: Token token='aUthEnTicAtIonTokeN'
authenticate_with_http_token do |token, options|
@auth_token = token
end
但当我传递令牌作为Authorization: Bearer token='aUthEnTicAtIonTokeN'
获取令牌为nil方法时。
如何在rails应用程序中通过标头传递不记名令牌?
您可以通过以下方法获取Bearer令牌:
def bearer_token
pattern = /^Bearer /
header = request.headers['Authorization']
header.gsub(pattern, '') if header && header.match(pattern)
end
此外,设置标题时应该是:
Authorization: Bearer 'aUthEnTicAtIonTokeN'
您的方法将正常工作,您只需要在请求中使用正确的引号。
使用单引号'
不起作用,其中双引号"
。
作为参考,rails使用Authorization:
方法以下列任何格式处理来自authenticate_with_http_token
标头的标记:
Bearer "token_goes_here"
Bearer token_goes_here
Bearer token="token_goes_here"
Bearer token=token_goes_here
Token token="token_goes_here"
Token token=token_goes_here
Token "token_goes_here"
Token token_goes_here
我确定这份清单并非详尽无遗,但希望能够了解可行的方法。
你也可以用
request.headers['Authorization'].split(' ').last