0

如果您将 Google 登录与与后端服务器通信的应用或网站一起使用,您可能需要识别服务器上当前登录的用户。要安全地执行此操作,请在用户成功登录后,使用 HTTPS 将用户的 ID 令牌发送到您的服务器。然后,在服务器上,验证 ID 令牌的完整性,并使用令牌中包含的用户信息来建立会话或创建新帐户。

我正在尝试添加 Google 身份验证,但遇到了一个问题:

这里我有客户端代码:

function onSignIn(googleUser) {
    var id_token = googleUser.getAuthResponse().id_token;
    var xhr = new XMLHttpRequest();
    xhr.open('POST', '/google-login');
    xhr.setRequestHeader('Content-Type', 'application/json');
    xhr.onload = function() {
        // console.log('Signed in as: ' + xhr.responseText);
        if(xhr.responseText == 'success'){
            signOut();
            // location.assign('/profile')
        }
    };
    xhr.send(JSON.stringify({token : id_token}));
}

这是服务器代码:

app.post('/google-login', (req,res) => {

    let token = req.body.token;

    console.log('token', token)

    async function verify() {
        const ticket = await client.verifyIdToken({
            idToken: token,
            audience: CLIENT_ID,  // Specify the CLIENT_ID of the app that accesses the backend
        });
        const payload = ticket.getPayload();
        const userid = payload['sub'];
        // console.log("payload*********************************", console.log(payload))
    }

    verify()
        .then((e)=> {
            // res.cookie('session-token', token);
            // console.log(e)
            res.send('success')
        })
        .catch(err => console.log(err));

})

我在上面的控制台日志中成功获得了令牌,但之后我收到了这个错误:

GaxiosError:检索验证证书失败:

在此处输入图像描述

请帮助我什至不知道如何调试?

注意:我正在使用此代码

注2:我正在测试这个http://localhost:4000

4

0 回答 0