我需要帮助在我的 API 代码中实现承载令牌,但我不知道如何:(
Posted
技术标签:
【中文标题】我需要帮助在我的 API 代码中实现承载令牌,但我不知道如何:(【英文标题】:I need help implementing Bearer Token in my API code but I don't know how :( 【发布时间】:2021-11-18 11:54:28 【问题描述】:我为我的 API 编写了代码,但我没有为 Bearer Token 编写代码,因为我不知道如何正确执行它,因为我是 swift 新手 :) 所以如果有人可以帮助我或参考我指向如何做的链接:)
这就是我在代码中的全部内容,但它不起作用:(
let headers = [
"content-type": "application/json",
"authorizetoken": "NjQzODM2N0NDNDM4NDhCNDk3RkU0NjA0QUY0NjVENkE=",
"cache-control": "no-cache",
]
var request = URLRequest(url: url, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 120)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers
【问题讨论】:
如果你能使用 Alamofire pod,那么我可以很容易地告诉你 @ZeeshanAhmed 是的,请指导我 如果您知道不记名授权是什么,那么您所显示的内容就没有多大意义了。 @L1S 我在下面发布了答案,检查它是否有效,否则请告诉我 【参考方案1】:import Foundation
func ApiCall(urlString:String,completion:@escaping (_ data:Data?,_ error:Error?)->Void)
let url = URL(string: urlString)!
var request = URLRequest(url: url)
request.allHTTPHeaderFields = [
"content-type": "application/json",
"authorizetoken": "NjQzODM2N0NDNDM4NDhCNDk3RkU0NjA0QUY0NjVENkE=",
"cache-control": "no-cache",
]
//// you can write "Bearer" if you are requesting url as a user from server like its only use for you
////if not only for you but for a group of users or for an app you shold only wirte the token string
URLSession.shared.dataTask(with: request) (data, response, error) in
guard error == nil else return completion(nil,error)
guard let data = data, let response = response else return
let yourdata = data
completion(data,nil)
print(data,response)
// handle data
.resume()
你可以像这样使用它
let data = ApiCall(urlString:"http:example.com") data, error in
if let _data = data
// handle your data here
if let err = error
// handle your error here
【讨论】:
感谢洛特的朋友【参考方案2】:你需要更新你的 allHTTPHeaderFields
request.allHTTPHeaderFields = [
"content-type": "application/json",
"authorizetoken": "Bearer NjQzODM2N0NDNDM4NDhCNDk3RkU0NjA0QUY0NjVENkE=",
"cache-control": "no-cache",
]
【讨论】:
"authorizetoken": "Bearer NjQzODM2N0NDNDM4NDhCNDk3RkU0NjA0QUY0NjVENkE=" 所以我必须将 Bearer 留在 "" 中或删除它 //如果您作为用户从服务器请求 url,则可以编写“Bearer”,就像它只对您使用 // 如果不仅对您,而且对一组用户或您的应用程序只保留令牌字符串 @L1S 我已经更新了我的答案,你可以检查一下以上是关于我需要帮助在我的 API 代码中实现承载令牌,但我不知道如何:(的主要内容,如果未能解决你的问题,请参考以下文章
我已经在 Spring Boot 代码中实现了 JWT 令牌安全性。如何在我的代码中的任何地方获取 jwt 令牌?需要保存审核