嘿,我正在尝试从Firebase Admin验证用户令牌,然后根据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. header
的控制台日志
这是从客户端,我请求我的端点
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;
2条答案
按热度按时间u3r8eeie1#
您的代码中可能有隐藏字符。请复制您的代码并将其粘贴到纯文本编辑器中,然后删除任何垃圾文本。
如果您使用的是可视化代码,则可以打开“呈现空白”。
按
CTRL + SHIFT + P / CMD + SHIFT + P
并搜索“渲染空白”,然后将其切换为打开iecba09b2#
更新......我通过降级Firebase-admin版本解决了我的问题