【发布时间】:2016-10-14 13:29:32
【问题描述】:
我正在尝试按照这些准则使用来自谷歌的新 firebase sdk 设置自定义身份验证:https://firebase.google.com/docs/auth/server#use_a_jwt_library
在 samble 代码中它说:
从 JSON 密钥文件中获取您的服务帐户的电子邮件地址和私钥
不幸的是,我不知道从哪里获得这个 json 文件。如果我转到我的 firebase 控制台 (https://console.firebase.google.com/),我会设法下载一个 json 文件,但它不包含任何电子邮件地址和私钥。
通过进入“API Manager > Credentials”菜单,我设法在我的谷歌云平台控制台 (http://console.cloud.google.com) 中找到了一个包含电子邮件地址和私钥的 json 文件。令人惊讶的是,我的 firebase 应用程序在那里显示。我将电子邮件和密钥复制并粘贴到示例代码中,然后出现此错误:
警告:openssl_sign():提供的密钥参数无法强制转换为 /volume1/web/yeti/vendor/firebase/php-jwt/src/JWT.php 中的私钥,第 183 行致命错误:未捕获的异常“DomainException” ' 在 /volume1/web/yeti/vendor/firebase/php-jwt/src/JWT.php:185 中带有消息 'OpenSSL 无法签署数据' 堆栈跟踪:#0 /volume1/web/yeti/vendor/firebase/php -jwt/src/JWT.php(154): Firebase\JWT\JWT::sign('eyJ0eXAiOiJKV1Q...', NULL, 'RS256') #1 /volume1/web/yeti/jwt.php(21): Firebase\JWT\JWT::encode(Array, NULL, 'RS256') #2 /volume1/web/yeti/jwt.php(24): create_custom_token('1234', false) #3 {main} 在 /volume1 中抛出/web/yeti/vendor/firebase/php-jwt/src/JWT.php 在第 185 行
有人知道我做错了什么吗?
谢谢
【问题讨论】:
-
Firebase 项目“只是”一种特殊类型的 Google Cloud Platform 项目,因此您的 Firebase 项目确实应该显示在 Google Cloud Platform 控制台中。在创建服务帐户时,请参阅this link中的第一段
-
感谢您的回答。但仍然无法正常工作。做了链接中解释的事情。仍然得到同样的错误。 (警告:openssl_sign():提供的密钥参数不能被强制转换为私钥)
标签: php firebase google-cloud-platform firebase-authentication