我最近允许用户使用谷歌0Auth2登录我的expo 应用程序.0

问题是,当我需要验证后端提供的令牌时,我有一个400错误.

(仅使用谷歌提供的令牌,不使用我从基本邮箱/密码身份验证中获得的令牌)

  • 在我的客户中:
export async function getUser(id){
    console.log("Reading user... ")         
    try{
        const token = await auth.currentUser.getIdToken()
        const response = await axios.get(`${root}/users/get_currentuser/${id}?auth=${token}`)
        return response.data
    }
    catch(err){
        console.log(err.message)
    }
}
  • 在我的后台:
const get_currentuser = async (req, res) => {

    const id = req.params.id
    const auth = req.query.auth
    try {
        const result = await getAuth().verifyIdToken(auth) // the error is here 
    
        if(result.uid === id){
            try {
                const user = await db.collection("Users").findOne({uid : id})
                res.status(200).json(user)


            } catch (error) {
                res.status(500).json(error)
            }
        }
        else
            res.status(400).json({err : "Connexion impossible"})

    } catch (error) {
        res.status(400).json({err : "Connexion impossible / token error "})
    }
    
}

提前感谢您的帮助!

推荐答案

好吧!我找到了解决办法.

我只记得我的Firebase Admin SDK不正确,因为我创建了一个新的Firebase项目,所以我使用了错误的私钥(我们在Profil设置中生成的密钥)

为了解决这个问题,我生成了一个新的私钥,这对我很有帮助.

Javascript相关问答推荐

我无法在NightWatch.js测试中获取完整的Chrome浏览器控制台日志(log)

使用JavaScript重新排序行

浮动Div的淡出模糊效果

在服务器上放置了Create Reaction App Build之后的空白页面

在JS中拖放:检测文件

JQuery Click事件不适用于动态创建的按钮

使用getBorbingClientRect()更改绝对元素位置

同一类的所有div';S的模式窗口

如何在Bootstrap中减少网格系统中单个div的宽度

一个实体一刀VS每个实体多刀S

在D3条形图中对具有相同X值的多条记录进行分组

将嵌套数组的元素乘以其深度,输出一个和

如何找到带有特定文本和测试ID的div?

我不知道如何纠正这一点.

无法使用npm install安装react-dom、react和next

MUI迷你图:如何将$符号添加到MUI迷你图中的工具提示数据

错误400:当我试图在React中使用put方法时,该字段是必需的

CSS网格使页面自动滚动

Playwright:ReferenceError:browserContext未定义

单击时同时 Select 和展开可访问的行