Application credentials -> PKCE support

Application credentials look like a great feature. Have the user be able to set the credentials and also having a way to manage the credentials in the cloud (thanks nabu!)

When trying to create a new integration that would need cloud pulling to an api that does OAuth2, looked like a good match for application credentials!

Unfortunately the API which I’m trying to connect to requires the use of PKCE to get the initial token (and thus don’t use the secret).

And apart from that next to the client ID they also require some value to be included in each request in a header.

My request, would you consider adding support for PKCE in the authentication flow?

And second: would you allow supporting adding extra data in the application credentials? Something like cred[“extra_header_value”]

Background, here are the steps I already took in getting this new volvo integration ready:

  1. You should use a library and not included the api code in the integration volvo_connected api :white_check_mark:
  2. All used libraries must be hosted at pypi :white_check_mark:
  3. Scaffold a new integration with application credentials :white_check_mark:
  4. Added the credentials to my test HA
  5. Trying to login
  6. Boom error (needs code_verifier parameter in login request)