You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby on Rails中如何从Webhook获取Bearer Token?

提取Webhook请求头中的Authorization Bearer Token踩坑记录

最近在处理Webhook接收数据的需求时,我需要从请求头里提取Authorization Bearer Token,先后试了几种方法都踩了坑,最后终于找到正确的方式,分享给大家:

尝试过的错误方法及结果

  • 方法1:解析响应体获取csrf-token
    当时误以为Token在响应体的JSON数据里,写了这段代码:

    data = JSON.parse(response.body)
    puts "TOKEN " + data['csrf-token']['content']
    

    结果完全拿不到想要的Bearer Token,方向从一开始就错了。

  • 方法2:检查headers中的Authorization
    这次意识到要从请求头里找,但用错了对象:

    if headers['Authorization'].present?
      puts " HEADER " + headers['Authorization'].split(' ').last
    else
      puts "ERROR"
    end
    

    输出了ERROR,说明headers并不是当前请求的头信息对象。

  • 方法3:直接用响应体取csrf-token
    没解析JSON就直接按哈希取值,结果返回nil:

    data = response.body
    puts "TOKEN " + data['csrf-token']['content']
    

最终解决方案

正确的做法是通过request对象来获取请求头:

# 获取完整的Authorization头(包含Bearer前缀)
bearer_token = request.headers["Authorization"]

# 如果只需要Token部分,可以拆分一下
bearer_token_value = request.headers["Authorization"]&.split(' ').last if request.headers["Authorization"].present?

问题的核心就是之前没有使用正确的request对象来访问请求头,改用request.headers就能正确拿到Authorization字段了。

内容的提问来源于stack exchange,提问作者Dam76

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:01:09