🤝Token Management

Estos son los Endpoints para crear, asociar y asignar capacidades a los Token Bearer para monoIntegrator

Permisos

Para poder manejar los tokens, es necesario que el usuario tenga los siguientes asignados:

{ createToken: true, deleteToken: true, viewToken: true }
  • createToken: Podras crear y recrear token como tambien asignar permisos

  • deleteToken: Podras eliminar token

  • viewToken: Podras ver todos los tokens asociados a tu cuenta como los permisos asignados

Ahora, tambien existe el permiso adminUser que permitira realizar todo lo anterior sobre el usuario iniciado, pero tambien sobre los demas.

API Endpoints

Crear Token

Puede enviar o no un Body, indicando el usuario vinculante al Token a crear.

  • Método: POST

  • URL: {{server}}/management/token/create

  • Autorización: Token Bearer ({{session}})

Cuerpo

{
    "userid": 1
}

Respuesta

{
    "tokenid": 5,
    "userid": 1,
    "bearer": "77b947c7-68ce-43f6-ae90-bd8a1dcbf503",
    "permissions": null,
    "createdAt": "2024-01-03T22:49:30.155Z",
    "updatedAt": "2024-01-03T22:49:30.155Z",
    "deletedAt": null
}

Eliminar Token

Simplemente debe indicar el tokenid en URL

  • Método: DELETE

  • URL: {{server}}/management/token/:tokenId

  • Autorización: Token Bearer ({{session}})

  • Variables de URL:

    • tokenId: {{tokenid}}

Establecer Permisos

  • Método: PUT

  • URL: {{server}}/management/token/permissions/:tokenid

  • Autorización: Token Bearer ({{session}})

Cuerpo

{
  "permissions": {
    "createA": true,
    "createB": true,
    "createC": true
  }
}
  • Variables de URL:

    • tokenid: {{tokenid}}

Respuesta

{
    "mensaje": "Se asignaron los permisos al Token indicado"
}

Regenerar Token

  • Método: PUT

  • URL: {{server}}/management/token/regenerate/:tokenid

  • Autorización: Token Bearer ({{session}})

  • Variables de URL:

    • tokenid: {{tokenid}}

Respuesta

{
    "tokenid": 3,
    "userid": 1,
    "bearer": "f126696d-203b-46d2-9d90-2f350a04bb8b",
    "permissions": "{\"createA\":true,\"createB\":true,\"createC\":true}",
    "createdAt": "2024-01-03T19:46:28.181Z",
    "updatedAt": "2024-01-03T19:46:31.591Z",
    "deletedAt": null
}

Leer Permisos

  • Método: GET

  • URL: {{server}}/management/token/permissions/:tokenid

  • Autorización: Token Bearer ({{session}})

  • Variables de URL:

    • tokenid: {{tokenid}}

Respuesta

{
    "permissions": {
        "createA": true,
        "createB": true,
        "createC": true
    }
}

Listar Tokens

Puede listar los tokens registrados por usuario, indicandolo al final de la URL. En caso de no indicarlo, mostrara los Token de su sesion activa.

  • Método: GET

  • URL: {{server}}/management/tokens/list/:userid?

  • Autorización: Token Bearer ({{session}})

Ruta Tokenizada

Esta es una ruta que se ubica en el directorio de ~/routes/userManagement/token/tokenizada.js siendo de ejemplo para implementacion

  • Método: GET

  • URL: {{server}}/tokenizada

  • Autorización: Token Bearer ({{bearer}})

Modo de Uso

La forma de trabajar con los Tokens es simple, debe indicar en su ruta fun['userManagement'].authenticateToken siendo que esto busca el Bearer y dejara la informacion del mismo en req.bearer. Un ejemplo practico es el siguiente:

router.get("/tokenizada", fun['userManagement'].authenticateToken, (req, res) => {
    const { id, ip, uri, method } = trx(req);
    try {
      res.status(200).json({ id, ip, uri, method, bearer: req.bearer });
    } catch (err) {
      log("error", `Existe un inconveniente - ${id} :: ${ip} :: ${uri} :: ${method} :: ${err}`, "userManagement");
      res.status(500).json({ msg: "Existe un inconveniente en la solicitud", id });
    }
});

module.exports = router;

El contenido de req.bearer es el siguiente

"bearer": {
    "userid": 1,
    "tokenid": 5,
    "token": "77b947c7-68ce-43f6-ae90-bd8a1dcbf503",
    "permissions": {
        "createA": true,
        "createB": true,
        "createC": true
    }
}

Last updated