Firebase Admin调用getUser报invalid_grant错误,verifyIdToken正常
Firebase Admin SDK调用getUser时触发invalid_grant错误,verifyIdToken功能正常
错误信息
FirebaseAppError: 传递给initializeApp()的"credential"参数对应的凭证实现无法获取有效的Google OAuth2访问令牌,错误信息:"获取访问令牌失败:invalid_grant (无效授权:账号未找到)"。可能的原因有两个:(1) 服务器时间未正确同步;(2) 证书密钥文件已被吊销。解决方法:(1) 重新同步服务器时间;(2) 确认密钥文件的密钥ID仍存在于IAM管理的服务账号页面中,若不存在,重新生成新的密钥文件。 at C:\Users\dinop\Documents\VS Code\Personal\next_social_app\node_modules\firebase-admin\lib\app\firebase-app.js:85:19 at processTicksAndRejections (node:internal/process/task_queues:96:5) at async getServerSideProps (webpack-internal:///./pages/user/[uid].tsx:30:30) at async Object.renderToHTML (C:\Users\dinop\Documents\VS Code\Personal\next_social_app\node_modules\next\dist\server\render.js:506:20) at async doRender (C:\Users\dinop\Documents\VS Code\Personal\next_social_app\node_modules\next\dist\server\base-server.js:708:34) at async cacheEntry.responseCache.get.isManualRevalidate.isManualRevalidate (C:\Users\dinop\Documents\VS Code\Personal\next_social_app\node_modules\next\dist\server\base-server.js:813:28) at async C:\Users\dinop\Documents\VS Code\Personal\next_social_app\node_modules\next\dist\server\response-cache\index.js:80:36 { errorInfo: { code: 'app/invalid-credential', message: '传递给initializeApp()的"credential"参数对应的凭证实现无法获取有效的Google OAuth2访问令牌,错误信息:"获取访问令牌失败:invalid_grant (无效授权:账号未找到)"。可能的原因有两个:(1) 服务器时间未正确同步;(2) 证书密钥文件已被吊销。解决方法:(1) 重新同步服务器时间;(2) 确认密钥文件的密钥ID仍存在于IAM管理的服务账号页面中,若不存在,重新生成新的密钥文件。' }, codePrefix: 'app' }
相关代码片段
const token = await firebaseAdmin.auth().verifyIdToken(cookies.token); const pageUid: any = ctx.params?.uid; console.log(pageUid); // 正常打印,验证ID Token功能正常 const pageUserData = await firebaseAdmin.auth().getUser(pageUid); // 抛出错误
已知信息
- 已确认
pageUid对应用户存在 - 当前使用的服务账号拥有以下权限:
- Firebase Admin SDK Administrator Service Agent
- Firebase App Check Admin
- Firebase Realtime Database Admin
- Service Account Token Creator
- Storage Admin
内容的提问来源于stack exchange,提问作者ImDino
相关产品推荐
相关产品推荐

