如何使用 next.js 和云函数以安全的方式避免 CORS?

编程入门 行业动态 更新时间:2024-10-03 12:32:43

<a href=https://www.elefans.com/category/jswz/34/1771452.html style=如何使用 next.js 和云函数以安全的方式避免 CORS?"/>

如何使用 next.js 和云函数以安全的方式避免 CORS?

我在前端使用 next.js,“api”文件夹在 next.js 服务器端为我们提供了一个 node.js 环境。

我们可以在前端和后端(云功能)之间有一些代理“api”。

  1. 从前端我在 next.js api 上发送请求
  2. 从next/api向云函数发送请求
  3. 响应并在前端返回

结果:获得 CORS

Next.js api代理代码:

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);
  }
}

这是云函数实现:

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);
    }
});

如何以安全的方式解决CORS?

回答如下:

firebase 存储库在两个示例中解释了 cors 的使用。您的问题已在这里得到解答 只要确保你使用这种格式

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

更多推荐

如何使用 next.js 和云函数以安全的方式避免 CORS?

本文发布于:2024-05-30 21:49:40,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1770961.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:如何使用   函数   方式   CORS   js

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!