He estado desarrollando una aplicación que admitirá a muchos usuarios. El problema es que no puedo averiguar cómo autenticar al cliente / usuario.
Estoy creando una aplicación como enlace donde les daré credenciales a mis usuarios y las usarán para crear N aplicaciones en las que no pueden poner su nombre de usuario y contraseña para autenticarse.
Supongamos que sigue los siguientes pasos. (Al igual que QuickBlox)
1. El usuario crea una cuenta en mi sitio web.
2. El usuario puede crear claves N API y secretar credenciales. (Para múltiples aplicaciones)
3. El usuario usará estas credenciales en sus aplicaciones (Android, iOS, Javascript, etc.) para hablar con mis API REST.
(Las API REST tienen acceso de lectura y escritura).
¿Mi preocupación?
Los usuarios pondrán sus credenciales (clave de API y clave secreta) en las aplicaciones que construyen, ¿qué sucede si alguien obtiene estas claves e intenta imitar al usuario? (Descomprimiendo APK o buscando directamente en el código JavaScript.
¿Estoy equivocado en algún lugar?
Estoy confundido con el diseño de este mecanismo de usuario de tres niveles.