Para la propuesta de solución de Token Digital se requiere un repositorio de almacenamiento que permita un guardado y una lectura eficiente. En este caso como lo mas importante es la lectura al ser MongoDB una de las soluciones más eficientes se optó por ella.

Tendremos 2 colecciones para cubrir con la solución:

  • digitalToken. Almacenara la key encriptada de cada usuario para la generación del token.

  • activationToken. Almacenara el token temporal solicitado por el cliente

Estas colecciones tendrán los siguientes campos en cada documento.

Table of Contents

Colección digitalToken

db.digitalToken

Tipo

Valores

Descripción

Ejemplo

_id

ObjectId

Aleatorio

Identificador único auto generado

64ac57af734208c08f4422ac

keyId

String

Aleatorio Unico

Identificador único del usuario o cuenta asociada con el token digital

8ed3f090-9317-496b-972a-9e7e5b5f2a14

key

String

Aleatorio de acuerdo con el cifrado Sha256

Clave cifrada utilizada para generar el token digital y autorizar al usuario

f1ad2b0c335e1c29818733aef732ab507c597fa52a0fb2a7d4b2e8e72d9b99c5

deviceId

String

Aleatorio Unico

Identificador del dispositivo registrado asociado con el token digital

4fd2b9a0-8f48-4e04-8535-5e1028eb6d81

Colección activationToken

db.activationToken

Tipo

Valores

Descripción

Ejemplo

_id

ObjectId

Aleatorio

Identificador único auto generado

64ac57af734208c08f4422ac

keyId

String

Aleatorio Unico

Identificador único del usuario o cuenta asociada con el token digital

8ed3f090-9317-496b-972a-9e7e5b5f2a14

token

String

Aleatorio

Número aleatorio generado por el algoritmo usado para el token de 6 dígitos

152357

createdAt

Date

Fecha y hora actual

Hora de creación del token utilizado para consideraciones de vencimiento del token

2023-07-10T13:35:24.023+00:00