Использование Sylius API через iOS

В настоящее время я пытаюсь использовать sylius api, используя домен demo.sylius.com, я правильно прошел аутентификацию и получил токен доступа без проблем, но когда дело доходит до передачи токена доступа в заголовок авторизации, я столкнулся с проблемой с ответ { error = "access_denied"; "error_description" = "OAuth2 authentication required"; } хотя API отлично работает через почтальона, вот мой пример кода

func getTotalProducts(page:String, completionHandler: @escaping (_ totalProducts: TotalProducts) -> Void){
    let urlPath=APIManager.baseURL+"api/v2/products"
    let headers = ["Content-Type":"application/json","Authorization":"Bearer \(token)","X-Authorization":"Bearer SampleToken","Auth":"Bearer SampleToken","auth":"Bearer SampleToken"]
    var request = URLRequest(url:  NSURL(string: urlPath)! as URL)

    // Your request method type Get or post etc according to your requirement
    request.httpMethod = "GET"

    request.setValue("Bearer SampleToken", forHTTPHeaderField: "Authorization")
    request.setValue("application/json", forHTTPHeaderField: "Content-Type")
    request.setValue("Bearer SampleToken", forHTTPHeaderField: "X-Authorization")
    request.setValue("Bearer SampleToken", forHTTPHeaderField: "auth")

    Alamofire.request(request)
        .responseJSON { response in
            switch(response.result){
            case .success(let value):
                print(value)
                let totalProducts = Mapper<TotalProducts>().map(JSON: value as! [String : Any])!
                completionHandler(totalProducts)
                break
            case .failure(let error):
                print("something went wrong \(error.localizedDescription)")
                break
            }
        }.session.finishTasksAndInvalidate()
}

person Hesham Ali Kamal    schedule 29.10.2018    source источник


Ответы (1)


Попробуйте с этим:

request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")

Удалите следующий код:

//request.setValue("Bearer SampleToken", forHTTPHeaderField: "X-Authorization")
//request.setValue("Bearer SampleToken", forHTTPHeaderField: "auth")
person Razib Mollick    schedule 29.10.2018
comment
Большое спасибо за ваш ответ, но ничего не работает, имейте в виду, что это запрос, который вы можете использовать для почтальона, вы можете использовать точное значение Bearer SampleToken и application/json для Content-Type для заголовка авторизации [demo.sylius.com/api/v2/products] - person Hesham Ali Kamal; 31.10.2018