I've been working with a student on an iOS app, and we noticed recently that when we attempt to authenticate to the SKY API via OAuth 2 using the authorization code flow with a client secret, we were suddenly getting a bunch of errors this week – all `invalid_client` errors.
This hadn't been the case on Monday (same code, same credentials, same app).
After a bit of tinkering, it seems like – empirically, at least – the authorization code flow is only working with a client secret if the client ID and secret are based as a base64-encoded Basic Authorization header. They are seen – I think – but are only generating errors if we send them as form fields in the `application/x-www-form-urlencoded` body of the token request POST.
I haven't played with this in any of our department's existing integrations that interact with SKY API via PHP or Node scripts, so maybe this is just some weirdness of a native iOS app… but I'm perplexed.
My example code (updated to deal with all this) is here:
Has anyone else seen anything like this? Any ideas?