【发布时间】:2017-09-23 13:44:21
【问题描述】:
我正在使用 Swift 构建一个 iOS 应用程序,该应用程序需要能够使用 RS256 或 RS512 使用公钥证书验证 JWT 令牌签名。
我一直在努力寻找支持此类功能的库,但在实现我找到的功能时遇到了问题。
因此,我的问题是,为 Swift iOS 应用程序实现此类功能的推荐方法是什么?
理想的场景是能够使用 JWT.io 上公认的框架之一。 JWT.io 上唯一支持 RS256 或 RS512 的 Swift 库是以下库: https://github.com/vapor/jwt
这个库支持的功能是理想的,但是它需要通过 Swift 包管理器实现,并且是使用 Vapor 构建的。 iOS 目前不支持 Swift 包管理器,但我读到有一些变通方法可以让 swift 包管理器与 iOS 应用程序一起使用。如果库可以在 iOS 应用程序上运行,这些是愿意采取的解决方法。但是,由于该库是为 Vapor 构建的,我的问题是是否有可能让该库在我正在构建的 iOS 应用程序上运行?
如果无法使用此库,是否有其他库推荐使用?如果不是,那么推荐的方法来实现这个请求的功能是什么?是否有推荐的可以在应用程序上运行的 Objective-C 库?
提前致谢!
编辑: 通过验证,我的意思是我想验证令牌中的签名是否正确,这意味着 JWT 令牌已使用服务器上与应用程序上的公钥证书对应的私钥进行签名。不仅仅是解码 Base64Check 负载。
编辑 2: 我想要实现的是支持非对称密钥的功能,这意味着密钥必须不同时存储在服务器和客户端应用程序上。我试图实现该应用程序仅包含非机密信息,因此是一个公钥证书。
【问题讨论】:
-
验证 JWT 令牌是什么意思?只需阅读此令牌?
-
这是解决这个问题的另一个库:github.com/auth0/JWTDecode.swift
-
@Efren 这个库只解码 JWT,没有按要求验证它们。
标签: ios objective-c swift jwt vapor