このエラーは、ユーザーが「サードパーティのCookieとサイトデータをブロックする」ときに発生します。
エラーを再現するには、次の場所に移動します。
サードパーティのCookieとサイトデータのブロックを解除するようユーザーに常にアドバイスしています。ただし、一部のユーザーはまだそれをブロックすることを好みます。
これをブロックしても、Gmailにサインインできます。興味深いことに、Firebase-Googleを使用してユーザーがサインインできないのはなぜですかOAuthサードパーティのCookieとサイトデータがブロックされている状態で提供されていますか?
Angular2とFirebaseで構築されています。ユーザーがサードパーティのCookieとサイトデータをブロックして認証できる方法はありませんか?
使用しているドメインはdeeptent.comですが、firebaseが認証され、Cookieを設定するドメインは.firebaseapp.comドメインです。したがって、はい、Cookieはサードパーティと見なされます。 Firebaseのユーザーは、Firebaseホスティングセットアップでカスタムドメインをどのように接続しているのか、もっと詳しく調べる必要があります。また、こちらもご覧ください サードパーティのCookieなしでGoogle Firebase Authenticationを使用
FirebaseとAngularでも同じ問題が発生しました。
あなたのenvironment.ts
ファイル、以下を探します:
firebase: {
authDomain: '<domain>.firebaseapp.com',
また、chrome settings chrome:// settings/content/cookiesで、次の文字列をCookieのホワイトリストに追加します。
https://[*.]firebaseapp.com
解決策は非常に簡単です。 Firebase Hostingでアプリをホストし、example.comが認証を含むアプリをすでにホストしていると仮定します。
認証ドメインは[projectid].firebaseapp.com
のようになります
authDomain
を変更します:config = {
apiKey: ...,
authDomain: example.com,
databaseURL: ...,
projectId: ...,
storageBucket: ...,
appId: ...,
}
OAuth ID client:の新しいリダイレクトURLを許可します
From console.developers.google.com >プロジェクト> ids> IDクライアントOAuth 2.0
承認されたリダイレクトURLのリストにhttps://example.com/__/auth/handler
を追加します
ホスティングをデプロイしてステップ1の変更を含めます。
この方法では、CNAMEを追加する必要はありませんが、httpsの証明書がないために機能しない可能性があります。
公式ドキュメント https://firebase.google.com/docs/auth/web/google-signin
補足:このリダイレクトURLをリストに追加するには、GitHub、Facebookなどの他の認証方法も更新することを忘れないでください。
Chromeのみ:
chrome コンテンツ設定> Cookies でコンテンツ設定を開きます==
そしてクッキーを選択します。そこで、Block third party cookiesを見つけて無効にします。
注:他のすべてのブラウザにはおそらくこのオプションがあり、正しい場所を探すだけです:)