我需要帮助在我的 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 令牌?需要保存审核

我如何在我的反应应用程序中实现 jwt 验证

如何在 Spring Boot 中实现刷新令牌

设备令牌和推送通知

如何在 Flask 中实现令牌认证?

检索 UserInfo 的访问令牌