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

Snowflake OAuth请求Token返回unsupported_grant_type错误如何解决?

错误触发原因
  1. 核心参数传递位置不符合要求:Snowflake OAuth的token-request端点不支持从URL查询参数读取授权相关参数,要求所有参数必须以application/x-www-form-urlencoded格式放在POST请求的请求体中,你当前将grant_type等参数放在URL query中,服务端无法识别到有效授权类型,所以返回不支持的错误。
  2. OAuth客户端权限配置缺失:你在Snowflake中创建的自定义OAuth客户端没有开启authorization_code授权类型权限,即使官方支持该类型,也需要对应客户端单独配置允许后才能使用。
  3. 参数值异常:grant_type的值存在多余空格、大小写错误,或者缺少client_id、client_secret等必填参数,也可能触发该类校验错误。
排查解决步骤
  • 调整请求参数传递格式:删除URL中的所有查询参数,将grant_type、code、redirect_uri、client_id、client_secret全部放入POST请求体,同时请求头添加Content-Type: application/x-www-form-urlencoded,请求URL仅保留https://<你的Snowflake实例域名>/oauth/token-request即可。
  • 校验OAuth客户端配置:登录Snowflake控制台,查看当前使用的OAuth客户端配置,确认OAUTH_ALLOWED_AUTHORIZATION_TYPES参数包含authorization_code,如果缺少可执行以下SQL更新配置:
ALTER SECURITY INTEGRATION <你的OAuth集成名称>
SET OAUTH_ALLOWED_AUTHORIZATION_TYPES = ('AUTHORIZATION_CODE', 'REFRESH_TOKEN');
  • 校验参数一致性:确保本次请求传入的redirect_uri和你之前获取authorization_code时传入的redirect_uri完全一致,没有路径、大小写、参数的差异;grant_type的值必须完全为小写的authorization_code,没有多余空格。
  • 校验code有效性:Snowflake返回的authorization_code有效期仅为10分钟,且只能使用一次,如果code已经过期或被调用过,需要重新走授权流程获取新的code再发起请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:39:03