我正在尝试按照以下指南使用来自 google 的新 firebase sdk 设置自定义身份验证:https://firebase.google.com/docs/auth/server#use_a_jwt_library
在 samble 代码中它说:
I'm trying to set up custom auth with the new firebase sdk from google following those guidelines : https://firebase.google.com/docs/auth/server#use_a_jwt_library
In the samble code it says :
从 JSON 密钥文件中获取您的服务帐号的电子邮件地址和私钥
Get your service account's email address and private key from the JSON key file
不幸的是,我不知道从哪里获得这个 json 文件.如果我去我的 firebase 控制台 (https://console.firebase.google.com/) 我设法下载了一个 json文件,但它不包含任何电子邮件地址和私钥.
Unfortunately I have not idea where to get this json file. If I go to my firebase console (https://console.firebase.google.com/) I manage to donwload a json file but it does not contain any email adress and private key.
我设法在我的 google 云平台控制台 (http://console.conf) 中找到了一个包含电子邮件地址和私钥的 json 文件.cloud.google.com) 进入API Manager > Credentials"菜单.令人惊讶的是,我的 firebase 应用程序显示在那里.我将电子邮件和密钥复制并粘贴到示例代码中,然后出现此错误:
I managed to find a json file that contains an email adress and a private key in my google cloud platform console (http://console.cloud.google.com) by goind into the "API Manager > Credentials" menu. Surprisingly my firebase app was showed there. I copy and pasted the email and key into the sample code, then I got this error :
警告:openssl_sign():无法将提供的密钥参数强制转换为第 183 行/volume1/web/yeti/vendor/firebase/php-jwt/src/JWT.php 中的私钥致命错误:未捕获的异常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): FirebaseJWTJWT::sign('eyJ0eXAiOiJKV1Q...', NULL, 'RS256') #1/volume1/web/yeti/jwt.php(21):FirebaseJWTJWT::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 行
Warning: openssl_sign(): supplied key param cannot be coerced into a private key in /volume1/web/yeti/vendor/firebase/php-jwt/src/JWT.php on line 183 Fatal error: Uncaught exception 'DomainException' with message 'OpenSSL unable to sign data' in /volume1/web/yeti/vendor/firebase/php-jwt/src/JWT.php:185 Stack trace: #0 /volume1/web/yeti/vendor/firebase/php-jwt/src/JWT.php(154): FirebaseJWTJWT::sign('eyJ0eXAiOiJKV1Q...', NULL, 'RS256') #1 /volume1/web/yeti/jwt.php(21): FirebaseJWTJWT::encode(Array, NULL, 'RS256') #2 /volume1/web/yeti/jwt.php(24): create_custom_token('1234', false) #3 {main} thrown in /volume1/web/yeti/vendor/firebase/php-jwt/src/JWT.php on line 185
有人知道我做错了什么吗?
Does someone has an idea of what I'm doing wrong ?
谢谢
您找到解决方案了吗?仍然遇到同样的问题!适用于 HS256,不适用于 RS256.这是谷歌云的限制吗?
Did you find the solution ? Still experiencing the same issue ! Works with HS256 and doesn't with RS256. Is it google cloud kind of limitation ?
非常感谢!@dbburgess
Thank you so much ! @dbburgess
问题:使用了错误的密钥和电子邮件.这些应在与 Firebase 项目对应的 GCP 凭据部分中生成.
Problem: Was using the wrong key and email. These should be generated in the Google Cloud credentials section that corresponds to the Firebase project.
解决方案:
填写值:
$service_account_email = "autogeneratedemail@developer.gserviceaccount.com";$private_key = "-----开始私钥----- SoneVeryVeryLongKey= -----结束私钥----- ";$uid = 'UserToUseInFirebaseRules';$is_premium_account = $uid;
$service_account_email = "autogeneratedemail@developer.gserviceaccount.com"; $private_key = "-----BEGIN PRIVATE KEY----- SoneVeryVeryLongKey= -----END PRIVATE KEY----- "; $uid = 'UserToUseInFirebaseRules'; $is_premium_account = $uid;
您不需要更改create_custom_token"函数中的任何内容,也许可以根据您的需要更改到期日期/时间.
You shouldn't need to change anything in the "create_custom_token" function, maybe the expiration date/time according to your needs.
然后调用函数:
create_custom_token($uid, $is_premium_account);
这篇关于使用 php 设置 firebase v3 自定义身份验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
在 SELECT(MYSQL/PHP) 中加入 2 个表Joining 2 tables in SELECT(MYSQL/PHP)(在 SELECT(MYSQL/PHP) 中加入 2 个表)
如何使<option selected=“selected">由How to make lt;option selected=quot;selectedquot;gt; set by MySQL and PHP?(如何使lt;option selected=“selectedgt;由 MySQL 和 PHP 设置?)
使用 PHP 中的数组自动填充选择框Auto populate a select box using an array in PHP(使用 PHP 中的数组自动填充选择框)
PHP SQL SELECT where like search item with multiple wordsPHP SQL SELECT where like search item with multiple words(PHP SQL SELECT where like search item with multiple words)
json_encode 从 MSSQL-SELECT 产生 JSON_ERROR_UTF8json_encode produce JSON_ERROR_UTF8 from MSSQL-SELECT(json_encode 从 MSSQL-SELECT 产生 JSON_ERROR_UTF8)
MySQL ORDER BY rand(),名称 ASCMySQL ORDER BY rand(), name ASC(MySQL ORDER BY rand(),名称 ASC)