javascript - 在我的谷歌登录代码中出现以前没有的错误
问题描述
我的项目中目前有这段代码:
后端:
app.post('/login', (req, res)=>{
let token = req.header.token;
async function verify() {
const ticket = await client.verifyIdToken({
idToken: id_token,
audience: CLIENT_ID,
});
const payload = ticket.getPayload();
const userid = payload['sub'];
console.log(payload)
}
verify()
.then(()=>{
res.cookie('session-token', token);
res.send('success');
}).
catch(console.error);
})
前端:
<script>
function onSignIn(googleUser) {
var id_token = googleUser.getAuthResponse().id_token;
console.log(id_token)
var xhr = new XMLHttpRequest();
xhr.open('POST', '/login');
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onload = function() {
console.log('Signed in as: ' + xhr.responseText);
if(xhr.responseText == 'success'){
signOut();
location.assign('/dashboard');
}
};
xhr.send(JSON.stringify({token: id_token}));
}
</script>
当我启动 localhost 并导航到 /login 路由时,我的终端中出现错误,并显示以下消息:
Error: The verifyIdToken method requires an ID Token
at OAuth2Client.verifyIdTokenAsync (/Users/gilmoreg01/Developer/pinventory/pinventory_backend/node_modules/google-auth-library/build/src/auth/oauth2client.js:391:19)
at OAuth2Client.verifyIdToken (/Users/gilmoreg01/Developer/pinventory/pinventory_backend/node_modules/google-auth-library/build/src/auth/oauth2client.js:386:25)
at verify (/Users/gilmoreg01/Developer/pinventory/pinventory_backend/testserver.js:29:37)
at /Users/gilmoreg01/Developer/pinventory/pinventory_backend/testserver.js:37:5
at Layer.handle [as handle_request] (/Users/gilmoreg01/Developer/pinventory/pinventory_backend/node_modules/express/lib/router/layer.js:95:5)
at next (/Users/gilmoreg01/Developer/pinventory/pinventory_backend/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/Users/gilmoreg01/Developer/pinventory/pinventory_backend/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/Users/gilmoreg01/Developer/pinventory/pinventory_backend/node_modules/express/lib/router/layer.js:95:5)
at /Users/gilmoreg01/Developer/pinventory/pinventory_backend/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/Users/gilmoreg01/Developer/pinventory/pinventory_backend/node_modules/express/lib/router/index.js:335:12)
我对正在发生的事情感到非常困惑,因为我之前有它工作过,自从它上次工作以来我没有改变任何东西。如果有人知道发生了什么,我很乐意知道。
谢谢!
解决方案
推荐阅读
- python - 如何在新终端中运行导入的模块 [Python]
- firebase - 任务':app:checkDebugDuplicateClasses'执行失败。,执行com.android.build.gradle.internal.tasks.CheckDuplica时发生故障
- kotlin - 可以是字符串或字符串数组的字段的 Kotlin 序列化
- android - 未解决的参考:它
- vagrant - 我可以在 Vagrant Trigger 中设置命令的顺序吗?
- haskell - 使用 Template Haskell 生成带有助手的新类型包装器
- r - R基于另一列绘制颜色
- python-3.x - 错误:“NoneType”对象在 python 中不可下标
- c - drawPyramid() 函数的递归版本
- r - 使用 relevel 后参考电平不变