Facebook を使用してソーシャルログインを設定する
Facebook OAuth 2.0 認証 (Authentication) システムを統合し、「Facebook でサインイン」、アカウント連携、Facebook API への安全なアクセスを実現します。
このガイドは、Logto コネクターについての基本的な理解があることを前提としています。未経験の方は、コネクター ガイドを参照して始めてください。
はじめに
Facebook コネクター (Connector) を利用すると、OAuth 2.0 統合によりアプリケーションで次のことが可能になります:
- 「Facebook でサインイン」認証 (Authentication) の追加
- ユーザーアカウントを Facebook アイデンティティに連携
- Facebook からユーザープロフィール情報を同期
- Logto Secret Vault に安全に保存されたトークンを利用して Facebook API へアクセスし、自動化タスクを実行(例:スレッドへの返信、アプリ内でのコンテンツや動画の公開)
これらの認証 (Authentication) 機能を設定するには、まず Logto で Facebook コネクター (Connector) を作成します:
- Logto > コネクター (Connector) > ソーシャルコネクター (Social connector) にアクセスします。
- ソーシャルコネクター (Social connector) を追加 をクリックし、Facebook を選択、次へ をクリックし、手順に従って統合を完了します。
ステップ 1: Facebook App Dashboard でアプリをセットアップする
Facebook を認証 (Authentication) プロバイダーとして利用する前に、Facebook 開発者プラットフォームでアプリをセットアップし、OAuth 2.0 資格情報を取得する必要があります。
- まだアカウントをお持ちでない場合は、 Facebook 開発者として登録 してください。
- アプリ ページにアクセスします。
- 既存のアプリをクリックするか、必要に応じて 新しいアプリを作成 します。
ユースケースは、アプリが Meta とどのようにやり取りするかの主な方法であり、アプリで利用できる API、機能、権限、製品を決定します。ソーシャル認証 (Authentication) のみ(メールアドレスと public_profile の取得)が必要な場合は、「Authentication and request data from users with Facebook Login」を選択してください。Facebook API へのアクセスも必要な場合は、希望するユースケースを選択してください。ほとんどのユースケースでは、アプリ作成後に「Facebook Login for business」の統合もサポートされています。
- アプリ作成後、アプリダッシュボードページで Use cases > Facebook Login > Settings または Facebook Login for business > Settings に移動します。
- Valid OAuth Redirect URIs に Logto の Callback URI を入力します(Logto Facebook コネクターからコピーしてください)。ユーザーが Facebook でサインインした後、認可コードとともにここにリダイレクトされ、Logto が認証 (Authentication) を完了します。
- Use cases に移動し、ユースケースの Customize をクリックしてスコープを追加します。Logto で Facebook サインインを実装するには
email
とpublic_profile
の追加を推奨します(必須)。
ステップ 2: クライアント資格情報で Logto コネクターをセットアップする
- Facebook App Dashboard で、サイドバーの App settings > Basic をクリックします。
- パネルに App ID と App secret が表示されます。
- App secret 入力欄の横にある Show ボタンをクリックして内容を表示し、コピーします。
- Logto Facebook コネクターの設定を行います:
clientId
フィールドに App ID を入力します。clientSecret
フィールドに App secret を入力します。- Logto で Save and Done をクリックし、アイデンティティシステムと Facebook を接続します。
ステップ 3: スコープの設定
スコープは、アプリがユーザーから要求する権限を定義し、Facebook アカウントからどのプライベートデータにアクセスできるかを制御します。
Facebook App Dashboard でスコープを設定する
- Facebook App Dashboard > Use cases に移動し、Customize ボタンをクリックします。
- アプリが必要とするスコープのみを追加します。ユーザーは Facebook の同意画面でこれらの権限を確認し、承認します:
- 認証 (Authentication) 用(必須):
email
およびpublic_profile
- API アクセス用(任意):アプリが必要とする追加スコープ(例:Threads API へのアクセスには
threads_content_publish
やthreads_read_replies
など)。利用可能なサービスは Meta Developer Documentation を参照してください。
- 認証 (Authentication) 用(必須):
Logto でスコープを設定する
ニーズに応じて、次のいずれかの方法を選択してください:
オプション 1: 追加の API スコープが不要な場合
- Logto Facebook コネクターの
Scopes
フィールドを空欄のままにします。 - デフォルトのスコープ
email public_profile
がリクエストされ、Logto が基本的なユーザー情報を正しく取得できるようになります。
オプション 2: サインイン時に追加スコープをリクエストする場合
- 必要なすべてのスコープを Scopes フィールドにスペース区切りで入力します。
- ここに入力したスコープはデフォルトを上書きするため、必ず認証 (Authentication) 用スコープ
email public_profile
も含めてください。
オプション 3: 後からインクリメンタルスコープをリクエストする場合
- ユーザーがサインインした後、フェデレーテッドソーシャル認可 (Authorization) フローを再実行し、ユーザーの保存済みトークンセットを更新することで、追加スコープをオンデマンドでリクエストできます。
- これらの追加スコープは Logto Facebook コネクターの
Scopes
フィールドに入力する必要はなく、Logto の Social Verification API を通じて実現できます。
これらの手順に従うことで、Logto Facebook コネクターはアプリに必要な権限だけをリクエストします。
アプリが Facebook API へのアクセスやアクション実行のためにこれらのスコープをリクエストする場合は、Logto Facebook コネクターで Store tokens for persistent API access を有効にしてください。詳細は次のセクションを参照してください。
ステップ 4: 一般設定
ここでは、Facebook への接続を妨げることはありませんが、エンドユーザーの認証 (Authentication) 体験に影響する可能性のある一般的な設定を紹介します。
プロフィール情報の同期
Facebook コネクターでは、ユーザー名やアバターなどのプロフィール情報の同期ポリシーを設定できます。以下から選択してください:
- サインアップ時のみ同期:ユーザーが初めてサインインしたときにプロフィール情報を一度だけ取得します。
- サインイン時に常に同期:ユーザーがサインインするたびにプロフィール情報を更新します。
Facebook API へのアクセス用トークンの保存(任意)
ユーザー認可のもとで Facebook API へアクセスしアクションを実行したい場合(ソーシャルサインインやアカウント連携経由)、Logto は特定の API スコープを取得し、トークンを保存する必要があります。
- 上記の手順に従って必要なスコープを追加します。
- Logto Facebook コネクターで Store tokens for persistent API access を有効にします。Logto は Facebook アクセストークンを Secret Vault に安全に保存します。
Facebook はリフレッシュトークンを提供していません。ただし、トークン保存が有効な場合、Logto はユーザー認証 (Authentication) 時に自動的に長期間有効なアクセストークン(60日間)をリクエストします。この期間中、ユーザーは手動でアクセストークンを取り消すことができますが、そうでなければ Facebook API へのアクセスに再認可は不要です。注意:offline_access
を Scope
フィールドに追加しないでください。エラーの原因となる場合があります。
ステップ 5: Facebook のテストユーザーでサインインをテストする(任意)
テスト、開発者、管理者ユーザーアカウントを使ってアプリでのサインインをテストできます。また、アプリを公開して任意の Facebook ユーザーがサインインできるようにすることも可能です。
- Facebook App Dashboard で、サイドバーの App roles > Test Users をクリックします。
- Create test users ボタンをクリックしてテストユーザーを作成します。
- 既存のテストユーザーの Options ボタンをクリックすると、「名前とパスワードの変更」などの操作が可能です。
ステップ 6: Facebook サインイン設定を公開する
通常、テスト、管理者、開発者ユーザーのみがアプリでサインインできます。一般の Facebook ユーザーが本番環境でアプリにサインインできるようにするには、アプリを公開する必要があります。
- Facebook App Dashboard で、サイドバーの Publish をクリックします。
- 必要に応じて Privacy Policy URL および User data deletion フィールドに入力します。
- 右下の Save changes ボタンをクリックします。
- アプリ上部バーの Live スイッチボタンをクリックします。
Facebook コネクター (Connector) の活用
Facebook コネクター (Connector) を作成し Facebook と接続したら、エンドユーザーのフローに組み込むことができます。ニーズに合ったオプションを選択してください:
「Facebook でサインイン」を有効にする
- Logto コンソールで サインイン体験 > サインアップとサインイン に移動します。
- ソーシャルサインイン セクションで Facebook コネクター (Connector) を追加し、ユーザーが Facebook で認証 (Authentication) できるようにします。
ソーシャルサインイン体験 について詳しくはこちら。
Facebook アカウントの連携・解除
Account API を利用して、サインイン済みユーザーが Facebook アカウントを連携または解除できるカスタムアカウントセンターをアプリ内に構築できます。Account API チュートリアル を参照してください。
Facebook コネクター (Connector) は、ソーシャルサインインを有効にせず、アカウント連携や API アクセスのみに利用することも可能です。
Facebook API へのアクセスとアクションの実行
アプリケーションは Secret Vault から保存された Facebook アクセストークン (Access token) を取得し、Facebook API を呼び出してバックエンドタスクを自動化できます(例:コンテンツの公開や投稿管理など)。API アクセス用の保存済みトークン取得ガイドを参照してください。
ユーザーの Facebook アイデンティティ管理
ユーザーが Facebook アカウントを連携した後、管理者は Logto コンソールでその接続を管理できます:
- ユーザー管理 に移動し、対象ユーザーのプロフィールを開きます。
- ソーシャル接続 セクションで Facebook 項目を見つけ、管理 をクリックします。
- このページで管理者は、ユーザーの Facebook 接続を管理し、Facebook アカウントから付与・同期されたすべてのプロフィール情報やアクセストークン (Access token) の状態を確認できます。
Facebook のアクセストークン (Access token) レスポンスには、特定のスコープ (Scope) 情報が含まれていないため、Logto ではユーザーが付与した権限 (Permission) の一覧を直接表示できません。ただし、ユーザーが認可 (Authorization) 時に要求されたスコープ (Scope) に同意していれば、アプリケーションは Facebook API へアクセスする際に対応する権限 (Permission) を持ちます。必要なスコープ (Scope) は Facebook Developer Console と Logto の両方で正確に設定することを推奨します。