この記事では、Discourse において Google OAuth2 を使用したログインの設定方法を解説します。
Google コンソールの設定
https://console.developers.google.com にアクセスし、左上の プロジェクトの選択(Select a project) をクリックします。
![]()
新規プロジェクト
画面右上の 新規プロジェクト(New Project) をクリックします。
プロジェクト情報の入力
プロジェクト名(Project Name) フィールドにプロジェクト名を入力します。プロジェクト ID(Project ID) も編集可能です。
プロジェクト ID の編集は任意です。入力後、作成(Create) をクリックします。
この処理には時間がかかる場合があるため、しばらくお待ちください。
作成エラー
作成中にエラーが発生する場合があります。
その場合は、エラーを無視し、Ctrl+F5 を押してページをリフレッシュしてください。
申請の検証
https://support.google.com/cloud/answer/9110914#submit-app-ver のリンクにある手順に従い、プロジェクトを Google Cloud Platform に提出して検証を受けてください。
外部リンクの作成
プロジェクト内で現在のプロジェクト名を選択し、左側のコントロールパネルから OAuth 同意画面(OAuth consent screen) メニューをクリックします。次に 外部(External) を選択し、作成(Create) ボタンをクリックします。
全項目の入力
すべてのデータを入力し終えてから、保存(Save) ボタンをクリックすることをお勧めします。
例として、ドメインを https://demo.site.com と仮定しています。入力する URL には https または http プロトコルが含まれていることを確認してください。
2021 年 9 月 13 日以降、Google へのアクセスを行うすべてのウェブサイトは HTTPS の使用が必須となります。
アプリケーションロゴ(Application logo) は変更する必要はありませんが、独自のロゴをアップロードすることも可能です。その後、Google によってサイトが検証されます。
資格情報(Credentials)
次に、資格情報(Credentials)を作成します。左側の Credentials タブに移動し、+ 資格情報の作成(+ CREATE CREDENTIALS) ボタンをクリックし、OAuth クライアント ID(OAuth client ID) を選択して作成します。
タイプの選択
次の画面で、アプリケーションタイプ(Application Type) を Web アプリケーション(Web application) に設定します。
許可された JavaScript 元(Authorized JavaScript Origins) の画面では、ウェブサイトの URL を追加します。この URL は http:// または https:// で始まっている必要があります。
許可されたリダイレクト URI(Authorized Redirect URI) の部分には、先ほど入力した URL の末尾に /auth/google_oauth2/callback を追加します。
その後、作成(Create) ボタンをクリックして作成を完了します。
2021 年 9 月 13 日以降、Google へのアクセスを行うすべてのウェブサイトは HTTPS の使用が必須となります。したがって、Discourse サイトでも HTTPS を使用することを強く推奨します。
キーペアの取得
OAuth クライアントのダイアログに、Client ID と Secret が表示されます。
キーペアの確認(オプション)
この手順は任意です。プロジェクトから Credentials オプションをクリックすると、編集または削除できる OAuth キーを確認できます。
Discourse の設定
Discourse の設定画面で enable google oauth2 logins を有効にし、上記の手順で取得した google oauth2 client id と google oauth2 client secret を入力します。
取得したキーペアを正しい設定フィールドに入力してください。
これで、Google ログインの設定は完了です。
Discourse のフロントエンドからテストを行ってください。
Tips
G Suite ログインを有効にする設定については、設定パラメータ google oauth2 hd を使用してください。詳細については、こちら をご覧ください。
ID トークンは Discourse によって検証されます。上記のリンクは、Discourse による検証処理のソースコードです。
詳細については、元の文書 iSharkFly - 飞鲨 をご覧ください。
公式サポートに感謝いたします。








