Flujo Autenticación, Opinion? (Español)

Hola buenas tardes, estoy buscando su opinión sobre la forma en la que pienso resolver el tema de autenticación en mi aplicación, que pienso puede ser de la siguente forma:

  • Usando un webview muestro una pantalla en mi webserver con el botón de Facebook Login, donde el usuario inicia el proceso de registro.

  • Después del flujo de autorización de facebook, guardar al usuario muestro una pantalla de agradecimiento informando que recibiran un link de autorizacion/validación desde su smartphone

  • Este link de validacion se abre desde el smarphone directo en mi app(miapp://codigo_de_verificacion). El Codigo de verificacion tiene vigencia de X tiempo.

  • Mi app toma el codigo de verificación y lo valida (http://dominio.com/valida?codigo) con el servidor para asegurarse que es valido, vigente y corresponde al ID de cuenta que lo recibio. Esta esta validación activa la cuenta en caso de ser nueva o funciona como Magic Link (loguea al usuario) en caso de no ser cuenta nueva.

DUDAS

  • Entiendo que no usamos sesión, solo guardamos el codigo de verificacion como un token que se verificaria en cada consulta que hagamos durante la operación de la aplicación, es correcto?. La operación ya no se realiza con webview, ya esta programada dentro de la app.

  • Siendo correcto que usamos el token guardado ara indentificarnos, este entiendo que se tendria que renovar por seguridad. es asi? de forma automatica? , solo lo elimino para que se haga el proceso de logueo via MagicLink? o que opinión tienen?

  • Alguna recomendación para formar este token?

Muchas gracias por su ayuda, saludos.

El token se guardaria temporalmente con el usuario y despues de la sesion caducaria. HSBC tiene un modulo de tokens que le otorga al usuario un token que se renueva cada 2 minutos mas o menos, es un poco fastidioso tener tantos codigos. La cuestion de los codigos ya seria la seguridad de cuantos codigos tu quieras darle para cada actividad.

Se me ocurre para hacer los tokens, que al iniciar sesion el usuario le das un codigo aleatorio y ya una vez que se lo muestres tambien se guarde en sus datos dentro de la base o el listado de los usuarios. Como esto: { “codigo”: “1234567890”, “name”: “John Doe”, “password”: “true” } Entonces cuando cierre sesion quites ese codigo y no se quede el token para que nadie accese denuevo con ese codigo. Estas listas son JSON, Fuse eventualmente trabaja listas con ese formato. PD: No se como añadir usuarios a esta lista desde la app.