Rumah  >  Soal Jawab  >  teks badan

Pengendalian CORS selamat menggunakan next.js dan fungsi awan

Saya menggunakan next.js di bahagian hadapan dan mempunyai folder "api" yang memberikan kami persekitaran node.js di sebelah pelayan next.js.

Kita boleh mempunyai beberapa "api" proksi antara bahagian hadapan dan hujung belakang (fungsi awan).

  1. Dari bahagian hadapan, saya menghantar permintaan kepada api seterusnya.js
  2. Hantar permintaan dari seterusnya/api ke fungsi awan
  3. Dapatkan respons di bahagian hadapan dan kembalikan

Keputusan: Mendapat CORS

Kod proksi api next.js:

import { getFunctions, httpsCallable } from 'firebase/functions';

import { firebase } from '@/lib';

export async function deleteUserAccount(userId: string) {
  if (!userId) {
    console.error('deleteUserAccount: no userId provided');
    return;
  }

  try {
    const functions = getFunctions(firebase, 'us-central1');
    const deleteUserData = httpsCallable(functions, 'deleteUserData');

    const { data }: any = await deleteUserData({
      userId,
    });

    console.log('deleteUserAccount', data);
  } catch (error) {
    console.error('deleteUserAccount error', error);
  }
}

Ini ialah pelaksanaan fungsi awan:

const admin = require('firebase-admin');
const functions = require('firebase-functions');

exports.deleteUserData = functions.https.onRequest(async (req, res) => {
    const uid = request.auth.uid;
    
    try {
        await admin.auth().deleteUser(uid);
        return { message: 'Data deleted successfully!' };
    } catch (error) {
        console.error('Error deleting user data', error);
        return Promise.reject(error);
    }
});

Bagaimana untuk menyelesaikan CORS dengan selamat?

P粉106301763P粉106301763224 hari yang lalu406

membalas semua(1)saya akan balas

  • P粉523335026

    P粉5233350262024-03-30 09:43:56

    Repositori Firebase menerangkan penggunaan kor dalam dua contoh. Soalan anda telah dijawab di sini Pastikan anda menggunakan format ini

    {
    origin:"https://your-site.name"
    }
    

    balas
    0
  • Batalbalas