我正在尝试在服务器端实现 jwt 验证过程,不幸的是后端服务允许小于 5 MB 大小的 nodejs 包。 如果我们检查nodejs firebase-admin sdk的大小约为 6,9 MB,仅数据库文件夹就是 6MB, 所以我想知道如果我只使用
admin = require('firebase-admin')// idToken comes from the client app
admin.auth().verifyIdToken(token)
只要您不在代码中的任何位置调用admin.database()
,就可以删除@firebase/database
。虽然我怀疑你可以这样把事情降低到5MB以下。您可能还必须删除Firestore,Storage及其某些依赖项,例如GAX。
$ npm install firebase-admin --production
$ du -sh node_modules/
35M node_modules/
$ du -a node_modules | sort -n -r | head -n 10
72496 node_modules
15016 node_modules/@firebase
13056 node_modules/@firebase/database
13032 node_modules/@firebase/database/dist
8512 node_modules/protobufjs
7184 node_modules/@google-cloud
6288 node_modules/es-abstract
5352 node_modules/@google-cloud/firestore
5152 node_modules/google-gax
5112 node_modules/@google-cloud/firestore/build
我只是使用了 jwt 简单的第三方库,并使用了如下解码函数:
jwt = require('jwt-simple')
jwt.decode(token, private_key, 'RS256')
private_key是您从Firebase控制台获得的字符串,令牌是用户提供的字符串(https://firebase.google.com/docs/auth/admin/verify-id-tokens#node.js 检查(