使用JWT和Google Cloud功能的Realm Cloud的Firebase身份验证



我正在尝试使用JWTS对境界进行身份验证。我正在使用Firebase作为身份验证服务,并正在尝试创建Google Cloud功能来生成JWT。我使用终端命令" ssh-keygen"生成了私钥和公共密钥。领域的JWT教程建议以下代码行以读取密钥文件:

const key = fs.readFileSync('./functions/id_rsa', 'utf8'); 

我将私有密钥复制到项目上,将上述代码指向文件,但是当我部署Google Cloud函数时,我收到以下错误消息:

⚠函数[myauthfunction(us-central1)]:部署错误。功能 加载用户代码失败。错误消息:文件索引中的代码 无法加载。您的代码中是否存在语法错误?详细的堆栈 跟踪:错误:Enoent:没有这样的文件或目录,打开 './functions/id_rsa'

我的项目结构如下:图片

我试图在领域的论坛上询问,但我没有得到太多帮助。他们建议的整个云功能是:

const functions = require("firebase-functions");
const jwt = require('jsonwebtoken');
const fs = require('fs');
const key = fs.readFileSync(’pathToMyPrivateKeyFile');
exports.myAuthFunction = functions.https.onCall((data, context) => {    
    const uid = context.auth.uid 
    const payload = { userId: uid }    
    const token = jwt.sign(payload, { key: key, passphrase: "your-passphrase" }, { algorithm: 'RS256'}),    
    return { token:token }
});

总而言之,Google云功能如何在项目中读取我的私钥文件?公共密钥存储在我的领域云仪表板中,以用于特定实例。

来源:领域云JWT Firebase教程

尝试仅通过./id_rsaid_rsa。我相信路径根是index.js文件所在的位置。

相关内容

  • 没有找到相关文章

最新更新