Log Masuk Google tidak berfungsi dalam Next.js dengan Firebase kerana ralat Polisi-Pembuka-Silang Asal
P粉020085599
P粉020085599 2023-08-25 20:30:33
0
2
971
<p>Saya sedang membangunkan aplikasi web menggunakan Next.js dan Firebase. Saya telah berjaya melaksanakan Log Masuk Google dalam aplikasi saya, tetapi saya menghadapi masalah yang menghalang proses log masuk daripada selesai seperti yang diharapkan. </p> <p>Apabila saya cuba log masuk, pop timbul muncul seperti yang dijangkakan. Walau bagaimanapun, dalam konsol saya melihat ralat berikut: </p> <pre class="brush:php;toolbar:false;">Dasar-Dasar-Pembuka-Cross-Origin akan menyekat tetingkap.panggilan tertutup.</pre> <p>Disebabkan ralat ini, proses log masuk tidak dapat diselesaikan dan pengguna tidak boleh log masuk dengan betul. </p> <p>Sesetengah konteks lanjut: Saya sedang menguji fungsi ini dalam persekitaran pembangunan pada localhost. <strong>Isu ini wujud pada Chrome tetapi bukan Firefox. </strong></p> <p>Adakah ralat ini disebabkan oleh salah konfigurasi Dasar-Pembuka-Silang Asal? Jika ya, bagaimanakah saya boleh mengkonfigurasi dasar ini dengan betul dalam aplikasi Next.js saya untuk Log Masuk Google dengan Firebase? </p>
P粉020085599
P粉020085599

membalas semua(2)
P粉616111038

Ya, ini mungkin ada kaitan dengan konfigurasi COOP halaman anda, halaman log masuk dan cara ia berinteraksi. Apabila dua halaman tidak mempunyai COOP yang sama, halaman tersebut akan berada dalam kumpulan konteks penyemakan imbas yang berasingan, yang mungkin menghalang interaksi tertentu, seperti kaedah window.close.

Sukar untuk memberikan penyelesaian yang tepat tanpa melihat kod dan pelaksanaan anda, tetapi anda boleh cuba mengubah suai COOP anda supaya ia sepadan dengan COOP halaman log masuk. Ini boleh jadi same-originsame-origin-allow-popups.

Pengepala ini boleh ditetapkan dalam konfigurasi NextJS: https://nextjs.org/docs/pages/api-reference/next-config-js/headers

Dalam kes anda:

module.exports = {
  async headers() {
    return [
      {
        source: "/(.*)",
        headers: [
          {
            key: "Cross-Origin-Opener-Policy",
            value: "same-origin", // "same-origin-allow-popups"
          },
        ],
      },
    ];
  },
};
P粉616383625

Ini nampaknya masalah yang sudah lama tidak selesai. Walau bagaimanapun, sila cuba perkara berikut

  1. Sila semak skop - https://stackoverflow.com/a/76574604/9640177
  2. Jika anda menggunakan API Google, pastikan anda telah menetapkan domain atau URI dibenarkan yang betul pada Firebase dan GCP - https:// stackoverflow.com/a/76547658/9640177

Anda juga boleh merujuk kepada Panduan Pengasingan Cross-Asal - https://web.dev/cross-origin-isolation-guide/ dan dokumentasi MDN untuk mengetahui lebih lanjut tentang Cross-Origin-Opener-Policy

Jika anda menggunakan Google API, pastikan anda turut menambah URI dengan port, mis. Anda boleh menyemak tapak web langsung saya - localhost:3000https://radheshyamdas.com/ Saya menggunakan firebase auth .js yang dibina dengan Next

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!