web-dev-qa-db-ja.com

例外:このブラウザはサポートされていないか、サードパーティのCookieとデータが無効になっている可能性があります

このエラーは、ユーザーが「サードパーティのCookieとサイトデータをブロックする」ときに発生します。

エラーを再現するには、次の場所に移動します。

  1. Chromeブラウザ「サードパーティのCookieとサイトデータをブロックする」を確認してください このガイドの参照
  2. https://www.deeptent.com に移動します
  3. サインインをクリックします
  4. 次に、空白の画面が表示されます。また、ブラウザ開発者コンソールを開くと、次のエラーが表示されます。

サードパーティのCookieとサイトデータのブロックを解除するようユーザーに常にアドバイスしています。ただし、一部のユーザーはまだそれをブロックすることを好みます。

  1. これをブロックしても、Gmailにサインインできます。興味深いことに、Firebase-Googleを使用してユーザーがサインインできないのはなぜですかOAuthサードパーティのCookieとサイトデータがブロックされている状態で提供されていますか?

  2. Angular2とFirebaseで構築されています。ユーザーがサードパーティのCookieとサイトデータをブロックして認証できる方法はありませんか?

21

使用しているドメインはdeeptent.comですが、firebaseが認証され、Cookieを設定するドメインは.firebaseapp.comドメインです。したがって、はい、Cookieはサードパーティと見なされます。 Firebaseのユーザーは、Firebaseホスティングセットアップでカスタムドメインをどのように接続しているのか、もっと詳しく調べる必要があります。また、こちらもご覧ください サードパーティのCookieなしでGoogle Firebase Authenticationを使用

8
Mitch Rose

FirebaseとAngularでも同じ問題が発生しました。

あなたのenvironment.tsファイル、以下を探します:

firebase: {
  authDomain: '<domain>.firebaseapp.com',

また、chrome settings chrome:// settings/content/cookiesで、次の文字列をCookieのホワイトリストに追加します。

https://[*.]firebaseapp.com

9
Gus

解決策は非常に簡単です。 Firebase Hostingでアプリをホストし、example.comが認証を含むアプリをすでにホストしていると仮定します。

認証ドメインは[projectid].firebaseapp.comのようになります

  1. Firebase設定のauthDomainを変更します:
config = {
    apiKey: ...,
    authDomain: example.com,
    databaseURL: ...,
    projectId: ...,
    storageBucket: ...,
    appId: ...,
}
  1. OAuth ID client:の新しいリダイレクトURLを許可します
    From console.developers.google.com >プロジェクト> ids> IDクライアントOAuth 2.0
    承認さ​​れたリダイレクトURLのリストにhttps://example.com/__/auth/handlerを追加します

  2. ホスティングをデプロイしてステップ1の変更を含めます。

この方法では、CNAMEを追加する必要はありませんが、httpsの証明書がないために機能しない可能性があります。

公式ドキュメント https://firebase.google.com/docs/auth/web/google-signin

補足:このリダイレクトURLをリストに追加するには、GitHub、Facebookなどの他の認証方法も更新することを忘れないでください。

0
Hugo Gresse

Chromeのみ:

chrome コンテンツ設定> Cookies でコンテンツ設定を開きます==

そしてクッキーを選択します。そこで、Block third party cookiesを見つけて無効にします。

注:他のすべてのブラウザにはおそらくこのオプションがあり、正しい場所を探すだけです:)

0
Junaid