我使用Laravel 5.3作为iOS应用的API。当我尝试使用标头和参数进行HTTP调用时,我收到401错误:
message ="无法解码令牌:令牌 \"可选(\"" eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjUsImlzcyI6Imh0dHA6XC9cL2xvY2FsaG9zdDo4MDAwXC9hcGlcL2F1dGhcL3Bvc3RMb2dpbiIsImlhdCI6MTQ4MDUzNzQxOCwiZXhwIjoxNDgwNTQxMDE4LCJuYmYiOjE0ODA1Mzc0MTgsImp0aSI6ImMyZmYxNzI5N2U5OGU4MzkzYzZkZWRmNTZlN2ZkMzNkIn0.u6sQqlq5k-B5jhZ7EymkXLlcTIQ-i7X_83an5irwTss \""为 无效的JWS&#34 ;; " STATUS_CODE" = 401; }
这是发出HTTP请求的代码:
let headers = ["Authorization":"Bearer \(token)"]
request(url! , method: .get, parameters: nil, encoding: JSONEncoding.default , headers: headers )
.responseJSON { response in
print("RESPONSE \(response)")
我做了一些谷歌搜索并找到了一个编码JWT的包,叫做JWTDecode.swift。以下是代码的链接:https://github.com/auth0/JWTDecode.swift。我仍然无法弄清楚如何解决这个问题。
答案 0 :(得分:1)
更改
let headers = ["Authorization":"Bearer \(token)"]
类似
guard let token = token else { return }
let headers = ["Authorization":"Bearer \(token)"]
否则您发送Optional(<token>)
而不是<token>
。