OAuth 2.0 assumes that native applications cannot keep client credentials confidential. Below is a snippet from RFC 6749, " 9." Native apps . "
Native applications using the type of permitting code MUST do this without using client credentials, due to the inability of their own application to store confidential client credentials .
A client application located in an environment where it is difficult to store confidential client credentials is called a public client (RFC 6749, 2.1. Client types "). Public clients should not request authorization and / or token with client privacy. (But this is allowed.)
If your mobile devices are smartphones, you should not embed a client secret in your application. On the other hand, if your mobile devices are special and you think that crackers can’t practically extract the client’s secret from your application on mobile devices, using client’s privacy will increase security.
source share