OAuth Public Client is NOT a OAuth Confidential Client
For Example, a Mobile Device Native application or a desktop application that has the OAuth Client password embedded inside it. Most Single-Page Applications (SPAs) and IoT devices.
We have also seen these referred to as non-confidential user-agents
Such an application could get cracked, and this could reveal the password. The same is true for a JavaScript application running in the users browser. The user could use a JavaScript debugger to look into the application, and see the Client Secret.
It is near impossible to secure the OAuth Client Secret on a native application for both:
- based on information obtained 2015-01-15
- based on information obtained 2019-12-23