การใช้ 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