Ios Swift 4.1 JWT http头承载在服务器中返回401
当我尝试使用swift 4.1中的this http authorization header从服务器获取请求时,使用以下代码行:Ios Swift 4.1 JWT http头承载在服务器中返回401,ios,swift,jwt,asp.net-core-webapi,Ios,Swift,Jwt,Asp.net Core Webapi,当我尝试使用swift 4.1中的this http authorization header从服务器获取请求时,使用以下代码行: setValue(“application/json”,用于httpheaderfield:“accept”) urlRequest.setValue(“承载者\(令牌)”,用于HttpHeaderField:“授权”) 但是运气不好,我收到了401未经授权的响应,并打印了响应头,结果是Www-Authentication:Bearer error=“invali
setValue(“application/json”,用于httpheaderfield:“accept”)
urlRequest.setValue(“承载者\(令牌)”,用于HttpHeaderField:“授权”)
但是运气不好,我收到了401未经授权的
响应,并打印了响应头,结果是Www-Authentication:Bearer error=“invalid_-token”
我在Authorize
部分尝试使用当我使用SwaggerUI
登录时生成的令牌,结果是正确的,并且令牌被验证和接受
我不确定是什么原因导致了这个错误,但我很怀疑它是否与URLRequest
有关
是否有人也遇到了与我相同的问题,并且对此有解决方案?找到了解决方案!我希望我在这个解决方案上帮助了所有人,我所做的只是使令牌不是可选的,而不是
token
添加代码>帮助我解决了这个问题
@CZ54使用保护
功能而不是的功劳代码>
guard let token=token else{return}
urlRequest.setValue(“Bearer\(token)”,用于httpheaderfield:“Authorization”)
一般来说,即使使用JWT,我也不会遇到任何问题。通常会有一些愚蠢的错误,比如头球丢失。看看我的一个例子,JWT有一个“Bearer”。是否可能是问题所在?如果您的令牌变量是可选的?如果是,该值将是可选的(您的\u令牌)
。我建议你下载Charles Proxy并比较Swagger和appHi@CZ54的请求,是的,你确实有一个非常好的观点!我所做的是添加代码>,它解决了这个问题!谢谢你提起这个@阿尔文克松你不该这么做代码>以避免该问题。更好地使用guard let
模式并正确处理nil
案例是的,现在就可以了,谢谢你的精彩提示!