gpt4 book ai didi

swift - 如何解码在 Swift 中收到 REST API 的 JWT token ?

转载 作者:行者123 更新时间:2023-11-30 10:27:20 31 4
gpt4 key购买 nike

所以我有两个函数 - 一个对用户进行身份验证,以便他可以登录并返回一个 JWT token ,第二个函数应该验证该 token ,以便查看用户是否登录并返回该用户的 userID用户通过解码 token 。

我的第一个函数可以工作并提供 JWT token ,但我不知道如何制作第二个函数。我怎样才能做到这一点?

这是我的 JWT token :

"eyJhbGciOiJIUzI1NiJ9.eyJmaXJzdE5hbWUiOiJCb2JWb2VyIiwic3ViIjoiMCIsImV4cCI6MTU4MDY4NjAwNywiYXV0aG9yaXRpZXMiOlsiVVNFUiJdfQ.mrfHVMNIJUssHSNn6tJ-AVVlkX6u79kp4sAQjBCu9E0"

我需要获取一个 Int 类型的 userID。 veryfyToken 函数返回 userID 或 nil。

一些代码:

func verifyToken (to:String, completion: @escaping (Int?)->()) { 

let url = URL(string: "http://localhost:8083/verifyToken")!
let json: [String: String] = ["token":to]
let jsonData = try? JSONSerialization.data(withJSONObject: json as Any)
var request = URLRequest(url: url)
request.httpMethod = "POST"


request.httpBody = jsonData
print("HTTPBODY:::",request.httpBody as Any)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")


}

最佳答案

您应该使用库来验证和解码您的 token 。jwt.io站点列出了包括 Swift 在内的所有平台的可信库。

截至今天,列出的库是:

如果您使用 JSONWebToken,获取声明的代码将如下所示:

do {
let claims: ClaimSet = try JWT.decode("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.e30.2_8pWJfyPup0YwOXK7g9Dn0cF1E3pdn299t4hSeJy5w", algorithm: .hs256("secret".data(using: .utf8)!))
print(claims)
} catch {
print("Failed to decode JWT: \(error)")
}

关于swift - 如何解码在 Swift 中收到 REST API 的 JWT token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59883280/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com