Protecting an Android client with PKCE
When implementing OAuth 2.0 native mobile applications, it's required that you handle the redirection URI when using the Authorization Code or the Implicit grant types. Handing the callback started by the OAuth 2.0 Provider can be achieved by registering a URI scheme strategy. But how can we protect the Authorization Code to be delivered to the right client application? If another client application (a malicious one) registers an activity to listen to the same URI scheme registered for our application, the operational system (in this case Android), will prompt the user with the means to select which application to use. If the user selects the bad one, the Authorization Code will be delivered to the bad application which can request an access token improperly. The PKCE is defined by RFC 7636 just to address this kind of problem and this recipe will help you implement a native application that relies on PKCE to be protected against Authorization Code...