OAuth設定
OAuth設定カテゴリでは、デバイスフロー認証を構成し、メンバーが既存のソーシャルアカウントを使用してクライアントPCにログインできるようにします。これはDevice Authorization Grant(RFC 8628)を実装しており、ユーザーが共有PC上で資格情報を入力するのではなく別のデバイス(スマートフォン)で認証するキオスク・公共環境シナリオ向けに設計されています。
マスタートグル
OAuthログインを有効にするトグルでOAuthシステム全体を制御します。無効にすると、クライアントのロック画面にOAuthログインオプションは表示されません。有効にすると、設定されたプロバイダーがメンバーログインに利用可能になります。
カフェ名
OAuth認証コンテキスト中に表示されるカフェの表示名です。メンバーがスマートフォンで認証プロンプトを見た際に、正しい施設にログインしていることを確認するのに役立ちます。
クレジットなしでのログインを許可
有効にすると、ウォレット残高がゼロでもメンバーがOAuth経由でログインできます。無料ブラウジングを許可したいカフェや、プリペイドクレジットではなくカウンターで支払うカフェに便利です。
無効にすると、OAuthログインを完了するにはメンバーにプラスのウォレット残高が必要です。
プロバイダー設定
HandyCafeは5つのOAuthプロバイダーに対応しています。各プロバイダーは個別に設定します。
| フィールド | 説明 |
|---|---|
| 有効トグル | Googleログインのオン/オフ |
| Client ID | Google Cloud Consoleプロジェクトからの OAuth 2.0 Client ID |
| Client Secret | 対応するクライアントシークレット |
| JSONインポート | Google形式の資格情報JSONファイルをアップロードしてClient IDとClient Secretフィールドを自動入力 |
| フィールド | 説明 |
|---|---|
| 有効トグル | Facebookログインのオン/オフ |
| Client ID | Facebook Developerアプリケーションからの App ID |
| Client Secret | Facebook Developerアプリケーションからの App Secret |
Apple
| フィールド | 説明 |
|---|---|
| 有効トグル | Appleログインのオン/オフ |
| Client ID | Apple DeveloperアカウントからのServices ID |
| Client Secret | 生成されたクライアントシークレット(JWTベース) |
X (Twitter)
| フィールド | 説明 |
|---|---|
| 有効トグル | Xログインのオン/オフ |
| Client ID | X Developer PortalからのOAuth 2.0 Client ID |
| Client Secret | 対応するクライアントシークレット |
Discord
| フィールド | 説明 |
|---|---|
| 有効トグル | Discordログインのオン/オフ |
| Client ID | Discord Developer PortalからのApplication ID |
| Client Secret | 対応するクライアントシークレット |
プロバイダーの設定手順
- プロバイダーのプラットフォームで開発者アプリケーションを作成します。
- 該当する場合、Device Authorization Grantフロー用にアプリケーションを構成します。
- Client IDとClient SecretをHandyCafeの対応するフィールドにコピーします。
- プロバイダーのトグルを有効にします。
- 設定を保存します。
Google専用として、Google Cloud Consoleから資格情報JSONをエクスポートし、JSONインポートボタンを使用して両方のフィールドを自動入力できます。
設定のテスト
OAuth設定を保存した後:
- サーバーに接続されたクライアントPCに移動します。
- クライアントのロック画面でOAuthログインオプションを探します。
- 設定済みのプロバイダーを選択してログインを開始します。
- クライアント画面にデバイスコードとQRコードが表示されます。
- スマートフォンでQRコードをスキャンするか、表示されたURLにアクセスしてコードを入力します。
- スマートフォンで認証を完了します。
- サーバーがトークンをポーリングし、設定に応じてログインを自動承認するか、管理者に承認リクエストを送信します。
- 承認されると、メンバーアカウントが作成またはリンクされ、クライアントセッションが開始されます。
完全なデバイスフローログインプロセスの詳細はOAuthログインのドキュメントをご覧ください。