嘿,我正在尝试从 Firebase 管理员验证用户令牌,然后根据 Mongodb 中的该信息创建一个用户,但每次当我请求此端点时,我都会收到以下错误:
D:\React Course\Ecommerce\server\node_modules\firebase-admin\lib\auth\base-auth.js:421
if (properties?.providerToLink) {
^
SyntaxError: Invalid or unexpected token
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1180:10)
这是我验证 userToken 的代码
const express=require("express");
import admin from "firebase-admin";
var serviceAccount = require("../FirebaseAdmin/Servicekey.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
});
export const authcheck=async(req,res,next)=>{
try{
const firebaseuser=await admin.auth().verifyIdToken(req.headers.authcheck);
console.log(firebaseuser);
}catch(error){
console.log(error);
}
}
任何人都可以帮我解决这个问题我尝试了一切可能的方法 这是 req.headers 的 Console.log
这是来自客户端,我向我的终点请求
const createandupdateuser=async(authcheck)=>{
await axios.post("http://localhost:5000/api/create-and-update-user",{},{
headers:{
authcheck,
}
})
}
const handlesubmit=async(e)=>{
e.preventDefault();
try{
setloading(true);
const result=await signInWithEmailAndPassword(auth,email,password);
const {user}=result;
const Idtoken=await user.getIdTokenResult();
createandupdateuser(Idtoken.token);
dispatch({
type:"LOGGED_IN_USER",
payload:{
email:user.email,
token:Idtoken.token
}
})
navigate("/");
}catch(error){
console.log(error)
swal(error.message);
setloading(false);
}
}
这是调用的 authcheck 函数
const express=require("express");
const router=express.Router();
import {createandupdateuser} from "../controllers/auth"
const {authcheck} =require("../middlewares/index");
router.post("/create-and-update-user",authcheck,createandupdateuser);
module.exports=router;
更新......我通过降级 Firebase-admin 版本解决了我的问题
npm i [email protected]
您的代码中可能存在隐藏字符。复制您的代码并将其粘贴到纯文本编辑器中并删除所有垃圾文本。
如果您使用的是可视化代码,您可以打开“渲染空白”。
按
CTRL + SHIFT + P / CMD + SHIFT + P
并搜索“渲染空白”并将其打开
嗨,我在部署到 vercel 函数时遇到了类似的问题
找不到模块“./token-generator” 需要堆栈:
我通过降级解决了这个问题 npm i [电子邮件受保护]
我今天在使用 firebase-admin v11.x 和 v12.x 时遇到了同样的问题
恢复到 v10.3.0,我的代码可以正常工作,无需其他更改。