是否有任何库/NPM 模块/代码示例来验证和解码 React Native 中的 JWT?
我知道我可以手动完成。但我希望像 node-jsonwebtoken 这样的东西存在。 (它在 React Native 中不起作用。)
最佳答案
有 RSA-Sign JavaScript Library这就是你想要的,尽管它使用了一些用纯 JS 编写的相当大和慢的加密库。
如果您想稍微工作以获得更简单和更快的结果,请使用 Wep Crypto API让浏览器为您验证签名。确切的代码将取决于 key 算法和格式,但本质上你在 JWT 底部解码 base64url 编码的签名,然后你调用 crypto.subtle.importKey
和 ["verify "]
作为最后一个参数(以 JWK 格式或任何其他格式传递 key ),然后使用生成的 key 调用 crypto.subtle.verify
。您需要将(已解码的) token 的签名转换为 ArrayBuffer,这可以通过以下方式完成:
buffer = new Uint8Array([...signature].map(c => c.charCodeAt(0)))
避免在同一网络上和验证签名之前获取 key (如果 key 被“jku”引用或在 token 的“jwk” header 字段中给出),因为验证其完整性在内部相当棘手浏览器。如果您可以在手动检查后将其硬编码到源代码中,那就更好了。
关于javascript - 有什么简单的方法可以在 React Native 中验证和解码 JWT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46256711/