Il problema con la concessione di credenziali password è che le credenziali vengono inoltrate in testo normale. Non è un problema di per sé, se il backend è chiuso (serveride), ma ciò vanifica lo scopo del tuo metodo di autenticazione del client.
OAuth può essere utilizzato per dimostrare l'autenticazione dell'oggetto, ma non puoi utilizzare OAuth per questo. Il modo migliore sarebbe utilizzare la sovvenzione del codice di autenticazione e inviare l'utente a una pagina di accesso sul provider OAuth tramite una visualizzazione Web. La prima volta che l'utente può decidere di accettare o rifiutare il client OAuth. Successivamente il client (la tua app) può parlare con l'API utilizzando il token di accesso al portatore. Se il provider OAuth associa il token di accesso con l'oggetto di autenticazione (lo consiglio), l'API è sempre in grado di controllare lo stato di autenticazione.
Per un'autenticazione più sofisticata, dovresti prendere in seria considerazione JWT. JWT e OAuth giocano bene insieme e prendono il meglio di entrambi.