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

R Shiny应用持Auth0获取的Bearer token调用API返回401如何解决

问题根因

你当前获取到的EBI开头的短串是Auth0返回的不透明访问令牌,仅可用于调用Auth0自身的用户信息端点,无法被你的自定义API解析校验,这是触发401错误的核心原因。

修复步骤
  • 第一步:修改_auth0.yml配置,新增API受众参数
    你需要先在Auth0后台创建目标API,拿到对应的API标识符,然后在配置文件中补充audience和自定义权限配置:
auth0_config:
  api_url: "https://<你的Auth0租户域名>.auth0.com"
  client_id: "<你的Shiny应用客户端ID>"
  client_secret: "<你的Shiny应用客户端密钥>"
  # 新增以下两行配置
  audience: "<Auth0后台自定义API的标识符>"
  scope: "openid profile <你的API要求的权限scope>"
  • 第二步:确认令牌有效性
    修改配置重启应用后,重新获取的access_token会变为eyJ开头的JWT格式长串,你可以自行解析确认令牌包含aud(受众)、scope(权限)字段,且过期时间正常。
  • 第三步:调整请求逻辑(可选)
    如果你的API配置为校验ID令牌而非访问令牌,可以把请求中的令牌替换为id_token:
GET(url, add_headers(Authorization = paste("Bearer", session$userData$auth0_credentials$id_token)))
额外校验项

如果修改后仍报错,请确认Auth0后台配置:

  • 你的Shiny应用已被授权访问目标API,且申请的权限已通过审批
  • 目标API的签名算法配置为RS256(官方推荐默认配置)
  • API的校验逻辑没有额外要求特殊请求头、参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 12:00:05