如何解决Nodejs google-auth-library无效令牌签名错误?

时间:2020-12-19 11:00:40

标签: node.js oauth-2.0 jwt google-signin

我正在将 Flutter 用于我的移动应用。我尝试使用谷歌添加登录。 Flutter 方面一切正常。我正在从移动应用获取 idToken 并发送到我的后端 nodejs。

现在,我想使用这个 idToken 通过 google-auth-library 包在 nodejs 后端验证用户的请求。

let token = "token"
const CLIENT_ID = "client_id"
const { OAuth2Client } = require('google-auth-library');
const client = new OAuth2Client(CLIENT_ID);
async function verify() {
    try {
const ticket = await client.verifyIdToken({
            idToken: token,
            audience: CLIENT_ID,  // Specify the CLIENT_ID of the app that accesses the backend
            // Or, if multiple clients access the backend:
            //[CLIENT_ID_1, CLIENT_ID_2, CLIENT_ID_3]
        });
        const payload = ticket.getPayload();
        const userid = payload['sub'];
        console.log(payload)
    } catch (error) {
        console.log(error)
    }
}
verify()

但此代码总是返回此错误 => 错误:令牌签名无效: 在 OAuth2Client.verifySignedJwtWithCertsAsync (\node_modules\google-auth-library\build\src\auth\oauth2client.js:566:19)

我应该怎么做才能在 nodejs 后端验证这个 idToken?

谢谢。

0 个答案:

没有答案