Looking for a simple answer to this. SPAs and Clients with a back-end clients can both use Auth Code + PKCE. However, clients with a back-end use secrets (SPAs can’t be trusted to keep one).
So, is requiring a secret completely up to the IdP (Auth0)? The way I understand this, is that Auth0 will set a flag RequireSecret = true and thats the only thing that makes the server side app more secure. The spec does not require it. Is this true? What am I missing?
The client secret won’t be used in the Auth Code + PKCE flow. This flow is intended for use when a backend is not available (SPA or native apps). In traditional web apps that have a backend, the original Authorization Code flow is used. Let me know if that answers your question! Here is additional info about the Auth Code + PKCE flow and an overview of the implementation with Auth0:
Currently, the PKCE flow is only supported with public clients (native/SPA) within Auth0. If this is something that you’d like to see supported, I’d recommend providing your use case in a feature request in the Feedback category: Feedback - Auth0 Community