我已使用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签名 。
有人可以建议解决这个问题吗?
答案 0 :(得分:2)
免责声明:未经测试,根据我所知(目前)。
根据文档, openssl_verify
接受公钥作为参数。
您正在提供私钥。
我尝试从私钥中提取公钥,并在 case class Person(name: String, age: Int)
def route =
get {
path("person") {
complete {
}
}
}
方法中使用它。
如何从私人中提取公众?很简单:
JWT::decode