SSO with Firebase

cookie-parserを使用していますか?

「いいね!」 1

Cookieの代わりにリダイレクトを使用する

皆さん、ご指導ありがとうございます。Cookieアプローチで行き詰まってしまいました。サーバーが別のドメインにあり、SafariがサードパーティCookieと対立しているためです。リダイレクトアプローチでStack Overflow Q&Aを作成しました。認証を楽しんでください! :stuck_out_tongue_closed_eyes:

firebase認証をDiscourseに簡単に統合できれば、非常に興味があります。

うーん、これは具体的にどういう目的で行うのですか? Discourse 以外でウェブアプリで Firebase 認証を使用していないのですか? 私は使用しており、その設定を変更したくありません。「local」のままにしておきたいです (Authentication State Persistence  |  Firebase)

このパスをたどる他の人のためのメモです。

  • Firebase Hosting を使用している場合は、Cookie の名前を __session にしてください。リライトルールは、キャッシング目的で他のすべての Cookie を除外します。
  • 検証されていないメールアドレスを許可しないように、上記の関連コードを次のようなものに置き換える必要があります(これは大きなセキュリティリスクです)。
          auth
            .verifyIdToken(idToken)
            .then(function (decodedClaims) {
              // この場合、ユーザーが過去5分以内にサインインしたことを強制します。
              // そして、彼らは検証済みのメールアドレスを持っている
              if (
                decodedClaims.email_verified &&
                new Date().getTime() / 1000 - decodedClaims.auth_time < 5 * 60
              ) {
                return auth.createSessionCookie(idToken, { expiresIn });
              }
              throw new Error("UNAUTHORIZED REQUEST!");
            })
    
  • Discourse には「ログアウトリダイレクト」設定があります。これは、ユーザーが再度ログインしようとしたときに以前と同じユーザーとして自動的にログインしないように、__session Cookie をクリアする URL(バックエンド API 呼び出しでのみ実行可能)をヒットするために使用すると良いでしょう。
「いいね!」 1

このコードはどこに実装できますか?