【问题标题】:I need help implementing Bearer Token in my API code but I don't know how :(我需要帮助在我的 API 代码中实现承载令牌,但我不知道如何:(
【发布时间】: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 我在下面发布了答案,检查它是否有效,否则请告诉我

标签: ios swift xcode


【解决方案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 我已经更新了我的答案,你可以检查一下
猜你喜欢
  • 1970-01-01
  • 2022-07-07
  • 1970-01-01
  • 2018-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-30
  • 1970-01-01
相关资源
最近更新 更多