Supabase REST API如何刷新token?尝试多个端点均返回404
Supabase Auth Token刷新接口正确用法
你之前尝试的几个带refresh字段的路径均不存在,正确的刷新端点及调用规则如下:
- 接口路径:
/auth/v1/token - 请求方法:
POST - 强制请求头:
apikey: 填入你Supabase项目的anon key或者service_role keyContent-Type:application/x-www-form-urlencoded
- 请求必填参数(表单格式提交):
grant_type: 固定值为refresh_token。该端点是多授权类型复用接口,密码登录等场景同样调用这个路径,靠grant_type参数区分业务逻辑,不存在单独以refresh命名的专属路径,这也是你之前试的路径全部返回404的核心原因refresh_token: 登录成功后接口返回、你本地存储的refresh_token值
调用示例(cURL):
curl -X POST 'https://<你的项目唯一标识>.supabase.co/auth/v1/token' \ -H "apikey: <你的项目anon key>" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d 'grant_type=refresh_token&refresh_token=<本地存储的有效refresh_token>'
调用成功后会返回新的access_token和refresh_token,注意每次刷新后旧的refresh_token会立即失效,必须同步更新本地存储的两份凭证,避免后续刷新失败。
配合SWR使用时,不要把该刷新接口加入常规SWR自动重验证队列,建议配置全局的fetch错误拦截:当业务接口返回401未授权错误时,再触发该刷新逻辑,拿到新凭证后重试原失败请求即可。
内容的提问来源于stack exchange,提问作者Diego Ulloa
相关产品推荐
相关产品推荐

