Sample code for 30+ languages & platforms
Swift

Isabel Connect Revoke Access Token

See more Ibanity Examples

Revokes an access token.

Chilkat Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

    // This example assumes the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    let http = CkoHttp()!

    // // Implements the following CURL command:
    // 
    // curl -X POST https://api.ibanity.com/isabel-connect/oauth2/revoke \
    // --cert certificate.pem:qwertyuiop1 \
    // --key private_key.pem  \
    // -H "Content-Type: application/x-www-form-urlencoded" \
    // -H "Accept: application/vnd.api+json"  \
    // -d token=8787 \
    // -d client_id=valid_client_id \
    // -d client_secret=valid_client_secret 

    // Ibanity provides the certificate + private key in PFX format.  This example will use the .pfx instead of the pair of PEM files.
    // (It is also possible to implement using Chilkat with the PEM files, but PFX is easier.)
    let cert = CkoCert()!
    success = cert.loadPfxFile(path: "qa_data/pfx/my_ibanity_certificate.pfx", password: "my_pfx_password")
    if success == false {
        print("\(cert.lastErrorText!)")
        return
    }

    success = http.setSslClientCert(cert: cert)
    if success == false {
        print("\(http.lastErrorText!)")
        return
    }

    let req = CkoHttpRequest()!
    req.httpVerb = "POST"
    req.path = "/isabel-connect/oauth2/revoke"
    req.contentType = "application/x-www-form-urlencoded"

    // Load the previously obtained access token.
    let jsonToken = CkoJsonObject()!
    success = jsonToken.loadFile(path: "qa_data/tokens/isabel_access_token.json")
    if success == false {
        print("No existing access token.")
        return
    }

    req.addParam(name: "token", value: jsonToken.string(of: "access_token"))

    // Note: For sandbox testing, we literally want to use the strings
    // "valid_client_id", and "valid_client_secret".
    // For the live app, you would replace these with actual values.
    req.addParam(name: "client_id", value: "valid_client_id")
    req.addParam(name: "client_secret", value: "valid_client_secret")

    req.addHeader(name: "Accept", value: "application/vnd.api+json")

    let resp = CkoHttpResponse()!
    success = http.httpReq(url: "https://api.ibanity.com/isabel-connect/oauth2/revoke", request: req, response: resp)
    if success == false {
        print("\(http.lastErrorText!)")
        return
    }

    let sbResponseBody = CkoStringBuilder()!
    resp.getBodySb(sb: sbResponseBody)

    var respStatusCode: Int = resp.statusCode.intValue
    print("Response Status Code = \(respStatusCode)")
    if respStatusCode >= 400 {
        print("Response Header:")
        print("\(resp.header!)")
        print("Failed.")
        return
    }

    print("Response Body:")
    print("\(sbResponseBody.getAsString()!)")

    // If successful, the response status code = 200, and the response body is "{}"

}