runlot
データ認証

ソーシャルログイン

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

解除したプロバイダーだけでログインしていたユーザーは、パスワード再設定であらためてアクセスできます。

このページの目次