如果您将 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