如何使用 next.js 和云函数以安全的方式避免 CORS?"/>
如何使用 next.js 和云函数以安全的方式避免 CORS?
我在前端使用 next.js,“api”文件夹在 next.js 服务器端为我们提供了一个 node.js 环境。
我们可以在前端和后端(云功能)之间有一些代理“api”。
- 从前端我在 next.js api 上发送请求
- 从next/api向云函数发送请求
- 响应并在前端返回
结果:获得 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?
发布评论