             failure?(OAuthSwiftError.encodingError(urlString: urlString))
             return nil
         }
-        
-        // TODO: PKCE - extra parameter
-        var pkceParameters = Parameters()
-        if isPKCE {
-            pkceParameters["code_challenge"] = self.codeChallenge
-            pkceParameters["code_challenge_method"] = self.codeChallengeMethod
-        }
-        
-        // TODO: PKCE - inject extra pkce parameters
-        return authorize(withCallbackURL: url, scope: scope, state: state, parameters: parameters + pkceParameters, headers: headers, success: success, failure: failure)
+        return authorize(withCallbackURL: url, scope: scope, state: state, parameters: parameters, headers: headers, success: success, failure: failure)
     }
 
     open func postOAuthAccessTokenWithRequestToken(byCode code: String, callbackURL: URL?, headers: OAuthSwift.Headers? = nil, success: @escaping TokenSuccessHandler, failure: FailureHandler?) -> OAuthSwiftRequestHandle? {

//  Copyright (c) 2014 Dongri Jin. All rights reserved.
//

 // Changes for RFC7636 - PKCE - Proof Key for Code Exchange by OAuth Public Clients
 //
 //         Example:
 //
 //        oauthswift = OAuth2Swift(
 //            consumerKey:    "key",
 //            consumerSecret: "secret",
 //            authorizeUrl:    "https://.../oauth/authorize",
 //            accessTokenUrl:  "https://.../oauth/token",
 //            responseType: "code",
 //            codeChallenge: codeChallenge.challenge,
 //            codeChallengeMethod: "S256",
 //            codeVerifier: codeChallenge.verifier
 //        )
 //
 //        oauthswift?.accessTokenBasicAuthentification = true
 //
 //        let _ = oauthswift?.authorize(
 //            withCallbackURL: "com.app://callback/",
 //            scope: "https://...",
 //            state: state,
 //            success: { (credential, response, parameters) in
 //                print("Authorize: success!")
 //                let _ = self.oauthswift?.client.get(request, success: { (resp) in
 //                    // use data
 //                }, failure: { (error) in
 //                    print(error)
 //                })
 //            },
 //            failure: { (error) in
 //                print("Authorize: error: \(error.localizedDescription)")
 //            }
 //        )


import Foundation

open class OAuth2Swift: OAuthSwift {

        parameters["code"] = code
        parameters["grant_type"] = "authorization_code"
        
        // PKCE - extra parameter
        if let codeVerifier = self.codeVerifier {
            parameters["code_verifier"] = codeVerifier
        }
        
        if let callbackURL = callbackURL {
