本文へスキップ
Best AI Service

Supabase OAuth token endpoint は 200 OK へ|201 固定判定を 2026-06-01 前に見直す

Supabase の /v1/oauth/token は成功時の HTTP ステータスが 201 Created から 200 OK へ変わります。strict 201 判定だけが壊れる条件と、response.ok へ直す手順を短く整理します。

公開: 最終確認: 2026年5月31日
最終確認: 2026年5月31日 根拠: 4件の公開情報 確認メモを見る 編集方針
Supabase OAuth token endpoint の変更を確認するイメージ

先に結論

2026-06-01 以降、Supabase の /v1/oauth/token は成功時に 200 OK を返します。

急いで直すべきなのは、成功条件を 201 Created に固定している自前実装 だけです。response.ok や 2XX 判定にしていれば、今回の変更はほぼ踏みません。

先に判断だけまとめるとこうです。

  • 要対応: status === 201 のような strict 判定を書いている実装
  • 影響は小さい: Fetch の response.ok、axios の既定、主要 SDK の既定挙動
  • 修正方針: 200201 の個別対応ではなく、2XX 判定へ寄せる
  • 確認期限: changelog 上の適用日は 2026-06-01

何が変わるのか

変わるのは、token endpoint の成功ステータス です。

Supabase の changelog では、/v1/oauth/token がこれまで返していた 201 Created をやめ、200 OK へ切り替えると案内しています。理由は OAuth 2.1 の section 3.2.3 に合わせるためです。

もうひとつの理由は実務的です。201 を厳密に期待する strict client では、token exchange が失敗していました。つまり今回の変更は、仕様準拠と相互運用性の両方を取りにいく修正です。

影響を受ける人、受けにくい人

影響を受けるのは、自前で成功判定を書いている人です。

たとえば次のような実装は見直したほうが安全です。

if (response.status !== 201) {
  throw new Error('Token exchange failed')
}

逆に、成功を 2XX range で見ている実装はそのまま動く可能性が高いです。Supabase 公式も、次の実装は影響を受けにくい例として挙げています。

  • MCP TypeScript SDK
  • Vercel AI SDK の @ai-sdk/mcp
  • axios の既定挙動

ここで大事なのは、SDK 名を覚えることではありません。自分のコードに strict 201 判定が残っているか を見ることです。

まず何を直せばいいか

一番安全なのは、成功判定を response.ok へ寄せること です。

if (!response.ok) {
  throw new Error('Token exchange failed')
}

Fetch 以外なら、次のような 2XX 判定でも十分です。

if (response.status < 200 || response.status >= 300) {
  throw new Error('Token exchange failed')
}

200201 の両方を個別に許す書き方でも当面は動きます。ただ、その条件はまた将来読みづらくなります。公式が 2XX 判定を勧めている以上、ここで寄せておく方がきれいです。

5分で終わる確認手順

急ぎなら、この順で見れば足ります。

  1. コードベースで /v1/oauth/token を grep する
  2. 201 を直接比較している箇所を探す
  3. response.ok か 2XX 判定へ置き換える
  4. 2026-06-01 以降の環境で token exchange を再テストする

影響範囲は広くありません。だからこそ、壊れるコードだけ先に狙って直す のが正解です。

MCP や AI agent 連携ではどこを見るべきか

MCP や AI agent 周辺は、SDK 本体よりその前後のラッパーが盲点になりやすいです。

たとえば公式 SDK が response.ok を使っていても、社内 wrapper や認証 middleware 側で 201 を前提にログや分岐を書いていると、そこだけ落ちます。

Supabase を AI agent の backend として使っているなら、認証変更をまとめて見直すタイミングで、Supabase が ChatGPT 公式 app に対応|SQL、schema変更、Edge Functions をどこまで任せられるかAIエージェント時代のbackend比較|InsForge vs Supabase vs Convex vs Firebase も合わせて読むと整理しやすいです。

いま慌てなくていいケース

Supabase の主要 SDK 既定挙動をそのまま使い、自前の strict 判定を書いていないなら、優先度は高くありません。

むしろ急ぐべきなのは、認証を自分でつないでいる統合です。OAuth callback、MCP 接続、AI SDK の外側で token exchange を包んでいる実装があるなら、そこを先に見てください。

同じ Supabase の breaking change でも、権限や schema 側の見直しが先に必要なチームは Supabase で新規 table は自動公開されない|2026-05-30 以降の GRANT と RLS を確認 も重要です。今回の論点は schema ではなく、あくまで token endpoint の成功判定です。

最後に確認すること

まず /v1/oauth/token を呼ぶ実装を grep し、status === 201 を response.ok か 2XX 判定へ置き換えてください。今回の変更で壊れるのは、その strict 判定だけです。

向いている人

  • ・Supabase OAuth や MCP 連携を自前実装し、token exchange の成功判定をコードで持っている人
  • ・2026-06-01 以降に突然認証フローが落ちる前に、影響箇所だけ先に潰したいチーム
  • ・response.ok に寄せるべきか、200 と 201 の両対応で済ませるべきかを短く判断したい人

避けたい人

  • ・Supabase の主要 SDK 既定挙動だけをそのまま使い、自前のステータス判定を書いていない人
  • ・OAuth の一般論や認可コードフロー全体の解説だけを探している人
  • ・BaaS 比較を読みたい人

確認メモ

根拠、確認日、まだ扱っていない範囲を本文の後ろにまとめています。

編集方針を見る

確認日

2026年5月31日

確認ソース数

4件

編集責任

@best-ai-service-editorial-review

研究責任 @best-ai-service-research / 編集責任 @best-ai-service-editorial-review

Verification links

まず開く公式リンク

公式発表、Docs、Pricing など、導入判断で先に見るリンクだけを残しています。

official changelog readinternal link review

確認した公開情報

  • official changelog
  • official linked implementation examples

比較観点

  • 変更日の明確さ
  • 影響範囲の狭さ
  • 修正のしやすさ

まだ扱っていないこと

  • • Supabase 管理画面内の文言変更
  • • 公式 SDK 以外の community wrapper の追随状況