データ認証
ソーシャルログイン
GitHub・Google・Kakao のログインを連携します。OAuth アプリはプロジェクトごとに登録します。
runlot auth provider set github --client-id <id> --client-secret <secret>
runlot auth provider set google --client-id <id> --client-secret <secret>
runlot auth provider set kakao --client-id <id> --client-secret <secret>--client-secret を省略すると、ターミナルで値の入力を求められます。このコマンドには admin ロールが必要です。
登録したプロバイダーは、デフォルトのログイン画面にボタンとして表示されます。
コールバック URL
各プロバイダーの OAuth アプリ設定に、次の URL を登録してください。
https://<あなたのドメイン>/__runlot/auth/callback/<provider>正確な URL は次のコマンドで確認できます。
runlot auth status独自のログイン画面で使う
import { signInUrl } from "@runlot/auth/client";
<a href={signInUrl("github", { next: "/app" })}>GitHub で続ける</a>上のコードは /__runlot/auth/sign-in/github?next=%2Fapp にリンクします。next が外部 URL であるか // で始まる場合は、セキュリティのため無視されます。
OAuth アプリはプロジェクトごとに
共用の OAuth アプリは提供していません。プロジェクトごとに独自の client ID と secret を登録する必要があります。そうすることで、同意画面にあなたのアプリ名が表示され、API の利用上限やプロバイダーのポリシーもプロジェクトの設定に従って適用されます。
同じメールアドレスのアカウント連携
パスワードログインとソーシャルログインが同じメールアドレスを使っている場合、1 つのユーザーアカウントに連携されます。利用中のログインプロバイダーは user.providers で確認できます。
const user = await env.auth.user(request);
user.providers; // ["password", "github"]プロバイダーの連携解除
runlot auth provider rm github解除したプロバイダーだけでログインしていたユーザーは、パスワード再設定であらためてアクセスできます。