Twitterでログイン
プロジェクトでTwitter認証を有効にするには、Twitter OAuthアプリケーションを設定し、Supabaseダッシュボードでそのアプリケーションの認証情報を追加する必要があります。
概要
アプリケーションにTwitterログインを設定するための手順は、3つのパートで構成されています。
- Twitter Developer Dashboardで、Twitterプロジェクトとアプリを作成して設定
- Supabaseプロジェクトに、Twitter
API Key
とAPI Secret Key
を追加 - SupabaseのJSクライアント・アプリにログインのコードを追加
手順
Twitter Developerアカウントにアクセスします
- developer.twitter.comにアクセスします。
- 右上の
Sign in
をクリックしてログインします。
コールバックURLを探す
次のステップでは、次のようなコールバックURLが必要です。
https://<project-ref>.supabase.co/auth/v1/callback
- Supabaseプロジェクトのダッシュボードにアクセスします。
- 左サイドバーの下部にある
Settings
アイコンをクリックします。 - リストの中の
API
をクリックします。 Config
のURL
の下にAPI URLがあるので、Copy
をクリックしてクリップボードにコピーします。- 末尾に
/auth/v1/callback
を追加することで、完全なOAuth Redirect URI
を取得できます。
Twitter OAuthアプリを作成
+ Create Project
をクリックします。- プロジェクト名(Project name)を入力し、
Next
をクリックします。 - 利用目的(Use case)を選択し、
Next
をクリックします。 - プロジェクトの説明(Project Description)を入力し、
Next
をクリックします。 - アプリの名前(App name)を入力し、
Complete
をクリックします。 API Key
(これはclient_id
になります)をコピーして保存します。API Secret Key
(これはclient_secret
になります)をコピーして保存します。
- プロジェクト名(Project name)を入力し、
- 下部の
Setup your App
でenable 3rd party authentication
のリンクをクリックします。 - 下部の
Authentication settings
の隣にあるEdit
をクリックします。 Enable 3-legged OAuth
をONにします。Request email address from users
をオンにします。Callback URLs
にコールバックURLを入力します。Website URL
にWebサイトのURLを入力します。Terms of service
に利用規約のURLを入力します。Privacy policy
にプライバシーポリシーのURLを入力します。Save
をクリックします。
SupabaseのプロジェクトにTwitterの認証情報を入力
- Supabaseプロジェクトのダッシュボードに移動します。
- 左側のサイドバーで、
Authentication
アイコンをクリックします(上部付近)。 - リストから
Settings
をクリックし、Authentication Settings
ページを表示します。 Site URL
にアプリの最終的な(ホストされた)URLを入力します(これは重要です)。External OAuth Providers
でTwitter Enabled
をONにします。- 前の手順で保存した
API Key
(client_id
)とAPI Secret Key
(client_secret
)を入力します。 Save
をクリックします。
クライアント・アプリにログインのコードを追加
JavaScriptのクライアント・コードはこちらに記載:Supabase OAuthクライアントコード
const { user, session, error } = await supabase.auth.signIn({
provider: 'twitter',
})
ボタン、リンク、またはUI要素から呼びだすための関数を追加します。
async function signInWithTwitter() {
const { user, session, error } = await supabase.auth.signIn({
provider: 'twitter',
})
}
ログアウトするには次の関数を使います。
async function signout() {
const { error } = await supabase.auth.signOut()
}