HandyCafe Docs
owner it-admin

OAuth 設定

OAuth 設定カテゴリでは、デバイスフロー認証を設定し、メンバーが既存のソーシャルアカウントを使用してクライアントPCにログインできるようにします。これは、ユーザーが共有PCで資格情報を入力するのではなく、別のデバイス(スマートフォン)で認証を行うキオスクや公共環境向けに設計されたデバイス認可グラント(RFC 8628)を実装しています。

マスタートグル

OAuth ログインを有効にするトグルは、OAuth システム全体を制御します。無効にすると、クライアントのロックスクリーンにOAuthログインオプションは表示されません。有効にすると、設定されたプロバイダーがメンバーのログインに利用可能になります。

カフェ名

OAuth 認証コンテキスト中に表示されるカフェの表示名です。メンバーがスマートフォンで認証プロンプトを見たときに、正しい施設にログインしていることを確認するのに役立ちます。

クレジットなしでのログインを許可

有効にすると、メンバーはウォレット残高がゼロでもOAuthを通じてログインできます。これは、無料ブラウジングを許可したいカフェや、プリペイドクレジットではなくカウンターで支払いを行うカフェに便利です。

無効にすると、メンバーはOAuthログインを完了するためにウォレット残高がプラスである必要があります。

プロバイダー設定

HandyCafeは5つのOAuthプロバイダーをサポートしています。各プロバイダーは独立して設定されます。

Google

フィールド 説明
有効化トグル Googleログインのオン/オフを切り替え
クライアントID Google Cloud ConsoleプロジェクトからのOAuth 2.0クライアントID
クライアントシークレット 対応するクライアントシークレット
JSONインポート Google形式の資格情報JSONファイルをアップロードしてクライアントIDとクライアントシークレットフィールドを自動入力

Facebook

フィールド 説明
有効化トグル Facebookログインのオン/オフを切り替え
クライアントID Facebook DeveloperアプリケーションからのアプリID
クライアントシークレット Facebook Developerアプリケーションからのアプリシークレット

Apple

フィールド 説明
有効化トグル Appleログインのオン/オフを切り替え
クライアントID Apple DeveloperアカウントからのサービスID
クライアントシークレット 生成されたクライアントシークレット(JWTベース)

X (Twitter)

フィールド 説明
有効化トグル Xログインのオン/オフを切り替え
クライアントID X Developer PortalからのOAuth 2.0クライアントID
クライアントシークレット 対応するクライアントシークレット

Discord

フィールド 説明
有効化トグル Discordログインのオン/オフを切り替え
クライアントID Discord Developer PortalからのアプリケーションID
クライアントシークレット 対応するクライアントシークレット

プロバイダーの設定方法

  1. プロバイダーのプラットフォームで開発者アプリケーションを作成します(各プロバイダーの開発者コンソールへのリンクは設定フィールドの横にあります)。
  2. 該当する場合は、デバイス認可グラントフロー用にアプリケーションを設定します。
  3. クライアントIDとクライアントシークレットをHandyCafeの対応するフィールドにコピーします。
  4. プロバイダートグルを有効にします。
  5. 設定を保存します。

特にGoogleの場合、Google Cloud Consoleから資格情報JSONをエクスポートし、JSONインポートボタンを使用して両方のフィールドを自動入力できます。

設定のテスト

OAuth設定を保存した後:

  1. サーバーに接続されているクライアントPCに移動します。
  2. クライアントのロックスクリーンでOAuthログインオプションを探します。
  3. 設定されたプロバイダーを選択し、ログインを開始します。
  4. デバイスコードとQRコードがクライアント画面に表示されます。
  5. スマートフォンでQRコードをスキャンするか、表示されたURLにアクセスしてコードを入力します。
  6. スマートフォンで認証を完了します。
  7. サーバーはトークンをポーリングし、設定に応じてログインを自動承認するか、管理者に承認リクエストを送信します。
  8. 承認されると、メンバーアカウントが作成またはリンクされ、クライアントセッションが開始されます。

デバイスフローのログインプロセス全体については、OAuthログインドキュメントを参照してください。