403未根据Alamofire要求提供身份验证凭证



我在Alamofire的A Get请求中获得403。我从服务器收到的错误消息是:未提供身份验证凭据。在请求中缺少身份验证标头的问题一直在遵循。我确定我在身份验证标题中发送访问令牌。Wireshark表明该请求是与Auth标题一起发送的。因此,我不确定如何解决。这是代码片段:

 var authenticatedJsonHeaders: [String: String] {
        get {
            return [
                "Content-Type": "application/json",
                "Accept": "application/json",
                "Authorization": "(accessTokenAuthType.rawValue) (accessTokenString)"
            ]
        }
    }
.....
return Alamofire.request(urlString, method:method, parameters: nil, encoding: encoding, headers: authenticatedJsonHeaders)
        .response { response in
            let currentUserId = ApplicationState.sharedInstance.currentUserManager.getCurrentUserProfileId()
            if(currentUserId == 0){ //if current user exists, do not sign the user out!
                print("bye user..")
                self.signOutUnauthorizedUser(response.response?.statusCode, urlOrSuffix: urlString)
            }
            self.checkResponseForSharevilleAlertMessage(response.response)
            if !hasResponseObject {
                if /*
let response = response,*/ (response.response?.statusCode)! < 400 && response.error == nil {
                    print("success for statuscode: (response.response?.statusCode) url: (urlString)")
                    success(nil)
                } else {
                    sendApiErrorWithUrlIfStatusCodeIsNot204(self.getUrlFromSuffix(urlString), statusCode: response.response?.statusCode)
                    print("fail for statuscode: (response.response?.statusCode ?? nil) url: (self.getUrlFromSuffix(urlString))")
                    print("request header")
                    print(response.request ?? "none"
                    failure(response.error)
                }
            }
        }
        .responseJSON { data in
            if hasResponseObject {
                if let value = data.result.value, data.response != nil && data.response!.statusCode < 400 && data.result.error == nil {
                    print("success for statuscode: (data.response!.statusCode) url: (urlString)")
                    success(value as AnyObject?)
                } else {
                    sendApiErrorWithUrlIfStatusCodeIsNot204(urlString, statusCode: data.response?.statusCode)
                    print("fail for statuscode: (data.response?.statusCode) url: (urlString)")
                    failure(data.result.error)
                }
            }
        }

我认为您应该尝试

.validate()

。在请求()和响应()之间。在您的Alamofire请求中,请致电

Alamofire.request(urlString, method:method, parameters: nil, encoding: encoding, headers: authenticatedJsonHeaders)
        .validate().response {  //   }

最新更新