El problema con la concesión de credenciales de contraseña es que las credenciales se transmiten en texto sin formato. No es un problema en sí mismo, si el backend está cerrado (servidor), pero eso anula el propósito del método de autenticación de su cliente.
OAuth se puede usar para probar la autenticación de objetos, pero no puede usar OAuth para eso. La mejor manera sería utilizar la concesión de código de autenticación y enviar al usuario a una página de inicio de sesión en el proveedor de OAuth a través de una vista web. La primera vez que el usuario puede decidir aceptar o rechazar el cliente OAuth. Después de eso, el cliente (su aplicación) puede comunicarse con la API utilizando el token de acceso al portador. Si el proveedor de OAuth asocia el token de acceso con el objeto de autenticación (lo recomiendo), la API siempre es capaz de verificar el estado de autenticación.
Para una autenticación más sofisticada, realmente deberías considerar JWT. JWT y OAuth juegan bien juntos y se llevan lo mejor de ambos.