使用php-jwt库解码firebase自定义令牌时出现openssl_verify()错误

时间:2016-07-12 10:10:16

标签: php firebase jwt firebase-authentication

我已使用php-jwt库生成了firebase自定义令牌,以便按照建议here在Firebase上进行自定义身份验证。

我尝试使用相同库的 decode 功能解码生成的令牌。

这是我的代码。

我使用以下行在配置文件中定义了私钥。 define("FIREBASE_PRIVATE_KEY","-----BEGIN PRIVATE KEY-----\nMY_VERY_VERY_LONG_KEY\n-----END PRIVATE KEY-----\n");

以下是解码令牌的代码。

JWT::decode($token, FIREBASE_PRIVATE_KEY, array('RS256'));

此代码抛出异常。

openssl_verify(): supplied key param cannot be coerced into a public key

当我使用 HS256 进行解码和编码时,一切正常。 但我必须使用 RS256 ,因为 Firebase自定义令牌只需要使用RS256签名

有人可以建议解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

免责声明:未经测试,根据我所知(目前)。

根据文档,

openssl_verify接受公钥作为参数。 您正在提供私钥

我尝试从私钥中提取公钥,并在 case class Person(name: String, age: Int) def route = get { path("person") { complete { } } } 方法中使用它。

如何从私人中提取公众?很简单:

JWT::decode