【发布时间】:2023-03-09 01:00:01
【问题描述】:
我想在 “Cloudflare workers” 环境中验证 “firebase JWT 令牌”。
问题是firebase-auth 不提供标准/.well-known/jwks.json,而是提供x806 public key certificate(pem) format
我正在使用“Webcrypto API”来完成加密工作,这就是我要做的
// Get CryptoKey
const key = await crypto.subtle.importKey(
"jwk", // it's possible to change this format if the pem can be changed to other standards
jwk, // ?? Here is the missing piece
{ name: "RSASSA-PKCS1-v1_5", hash: "SHA-256" },
false,
["verify"]
);
// Verify
const success = await crypto.subtle.verify(
"RSASSA-PKCS1-v1_5",
key,
signature, // JWT signature
data // JWT payload
);
我在 Github 上尝试了几个包,我发现的所有库要么不起作用,要么使用在 CF 环境中不起作用的 nodejs API(例如缓冲区)
谁能告诉我怎么做
- 将 Firebase 公钥转换为 JWK 或
- 将公钥转换为
importKey可以接受的其他标准("raw" | "pkcs8" | "spki")
注意:我们处于“CF Workers”环境中,所以所有“nodejs”api 都不起作用
谢谢
【问题讨论】:
标签: javascript firebase web-standards webcrypto-api cloudflare-workers