RORK LABEN
TOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しましたTOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しました
記事一覧/開発ツール
開発ツール/2026-05-04上級

Rork × Better Auth で Web/モバイル統合認証を実装する — Cookie・Deep Link・パスキーまで

Rork で作るモバイルアプリと Web 版を同一の Better Auth バックエンドに統合する実装ガイド。メールリンク・ソーシャル・パスキー・組織機能まで Cookie/Deep Link の落とし穴を全て押さえます。

Better Auth認証14React Native209CookieDeep Link3PasskeysB2B SaaS

プレミアム記事

3 つの Rork アプリを運営してきて、毎回いちばん時間を吸われたのは UI でも課金実装でもなく、認証まわりでした。Web 版を Clerk にしてモバイルを Supabase Auth、Apple Sign In だけ別実装、組織機能は自前で作って、と継ぎ接ぎしているうちに、ユーザー削除のときに 4 箇所更新しないといけないコードベースが完成してしまったのです。

その反省から、最近の新規プロジェクトでは Better Auth に一本化しています。Better Auth は 2024 年後半に登場した TypeScript ファーストの認証ライブラリで、フレームワーク非依存・プラグイン式・自前 DB という思想で作られています。Clerk のような SaaS と違って自分のサーバーで動かしますが、その代わり 1 つのバックエンドで Web ブラウザ・iOS・Android すべてを同じセッションモデルで扱えるのが最大の利点です。

ここで扱うのはRork で作ったモバイルアプリ(React Native + Expo)と Next.js の管理画面を、ひとつの Better Auth サーバーに統合する手順を、私が本番で踏んだ落とし穴と一緒にまとめます。コード例はすべて、執筆時点の Better Auth 1.2 系で動作確認済みです。

なぜいま Better Auth なのか — Clerk・Supabase Auth・Auth.js との違い

最初に「なぜ Clerk や Supabase Auth ではないのか」を整理しておきます。私自身どちらも本番で使ってきたので、向き不向きの判断軸を率直に書きます。

Clerk は UI コンポーネントが完成度高く、B2B 機能(組織・招待・SSO)が箱から出してすぐ使えます。一方で MAU 課金が積み上がりやすく、無料アプリで月 5 万 MAU を超えてくると課金体系が個人開発の収益と合わなくなります。Clerk はうまく行きすぎたときに困る選択肢でもあるのです。

Supabase Auth は Postgres と密結合で安いのですが、サーバーセッションが GoTrue (JWT) ベースで Cookie 同期がモバイルでやや扱いづらい印象です。Apple Sign In や Passkeys のような OS 固有機能は自分でラップする必要があります。

Auth.js (旧 NextAuth) は Web 中心で、React Native での公式サポートが弱いです。

そこに登場した Better Auth は、上記のいいとこ取りを TypeScript で実装したような設計です。具体的には、

  • セッションは DB に保存される Cookie + Token のハイブリッド。Web は HttpOnly Cookie、モバイルは Bearer トークンとして同じ session レコードを参照する
  • 認証メソッドは プラグイン。メールパスワード・マジックリンク・ソーシャル・パスキー・OTP・2FA・組織・SSO・Stripe 連携などをコンポーザブルに足せる
  • DB アダプタは Drizzle・Prisma・Mongo・Kysely をサポート。Cloudflare D1 や Neon Postgres も Drizzle 経由で動く
  • フロントは React・Vue・Svelte・Solid・React Native に公式クライアントあり

つまり「Web でうまく動いた認証フローが、そのままモバイルでも同じ DB に書き込める」という体験を提供してくれます。私が継ぎ接ぎ運用に疲れた人向けには、これがいちばん効きます。

Better Auth が Rork アプリに合う 3 つの理由

Rork は React Native + Expo で生成されたアプリを npm publish のように Cloudflare に乗せて使う構成なので、認証バックエンドも Cloudflare 上で動かしたほうがレイテンシが揃います。Better Auth はこの構成と特に相性が良く、理由は 3 つあります。

第 1 に、Cloudflare Workers + Hono で Better Auth を素直に動かせること。betterAuth.handler は標準の Request を受け取って Response を返すだけなので、Hono ルートに app.all('/api/auth/*', c => auth.handler(c.req.raw)) と書くだけで動きます。

第 2 に、Drizzle ORM 経由で Cloudflare D1 や Neon Postgres を共有できること。Rork で作ったアプリのバックエンドにすでに Drizzle を使っているなら、認証用テーブルを既存スキーマに足すだけです。私の現プロジェクトでは Rork × Neon Postgres + Drizzle ORM 完全ガイド で組んだ DB をそのまま使い、auth-schema.ts だけ追加しました。

第 3 に、Expo の Deep Link と Cookie を両方サポートしていること。これが地味に効きます。後述しますが、Apple Sign In のリダイレクト URL を myapp://auth/callback で受けつつ、Web 版では Cookie で同じセッションを引き継ぐ、という運用が可能です。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
Web 版とモバイル版で別々の認証基盤を持っていて運用が辛かった人が、Rork × Better Auth で 1 つの DB と 1 つのコードベースに統合できる
Deep Link が Safari でだけ動かない・Cookie が iOS で保存されない・Apple Sign In のリダイレクトが切れるといった「あと一歩」で詰まるトラブルをすべて再現可能なコードで解決できる
個人開発でも B2B SaaS でも通用する組織(Organizations)プラグイン・パスキー・セッション同期の本番運用パターンを今日から取り入れられる
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

開発ツール2026-06-19
Rork アプリの API 通信を堅くする — トークン更新・再試行・冪等性の設計
Rork が生成する fetch はそのままだと、トークン切れ・電波の揺らぎ・二重送信に弱いままです。トークンの自動更新、再試行とバックオフ、冪等性キーを一つのクライアント層に集約する設計を、実装コードと運用の数値とともに整理しました。
開発ツール2026-07-15
「、」が行頭に落ちた — Rork が組んだ名言カードと日本語の禁則処理
React Native の Text は日本語の行頭禁則を保証しません。実測した違反率、WORD JOINER による事前結合の実装、onTextLayout での自動監査、Rork Max(SwiftUI)との挙動差までまとめました。
開発ツール2026-07-15
Rorkの癒しアプリにスリープタイマーを付けたら、フェードアウトが実際の音とズレた話
Rorkが生成するスリープタイマーは、壁時計のsetIntervalで音量を下げます。数値上は30分でも、実際の音はもっと早く消えたり不自然に途切れたりします。フェードを再生位置で駆動し直す実装と、対数カーブ・停止処理・画面ロック時の限界までを実運用の視点でまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →