0.0.49 • Published 3 days ago

aloux-iam v0.0.49

Weekly downloads
-
License
MIT
Repository
github
Last release
3 days ago

Aloux IAM

Uso de esta librearía para administración de menus, privilegios, funciones, usuarios y envio de notificaciones por medio de correos y mensajes de texto

Installation

$ npm install aloux-iam --save

Usage

En archivo init.js

// Require
const { IAMRouter, IAMSwagger } = require('aloux-iam')


app.use(IAMRouter)

// swagger
app.use(
    "/aloux-iam",
    swaggerUI.serveFiles(IAMswagger, {}), 
    swaggerUI.setup(IAMswagger)
    )

// URL Swagger
// [BASE_URL]/docs-iam/#/default/

En archivo router.js

// Require
const { IAMAuth } = require('aloux-iam')

// Example
router.post('/customer', IAMAuth, customer.create)

Variables de entorno

Requiere las siguientes variables de entorno (.env)

VariableDescription
AUTH_SECRETRequired, para cifrar la contraseña
AWS_SECRET_ACCESS_KEYRequired, para acceso a S3 y SES AWS.
AWS_ACCESS_KEY_IDRequired, para acceso a S3 y SES AWS.
AWS_REGIONRequired, para acceso a S3 y SES AWS.
AWS_BUCKETRequired, para guardar la foto de perfil en AWS.
AWS_EMAIL_SENDERRequired, para mandar el correo de recuperación de contraseña
DEBUGRequired, para validar si el ambiente es dev o PROD
SWAGGER_SERVERRequired, para acceder al swagger de IAM
MASTER_PWDOptional, para utilizar contraseña maestra de usuarios en desarrollo
BASE_URLOptional, para swagger

Endpoints disponibles

Endpoints user self (no auth)

MethodEndpointDescription
POSTiam/auth/emailValidar correo
POSTiam/auth/loginIniciar sesión
POSTiam/auth/forgot/passwordEnviar código a correo
POSTiam/auth/validate/codeVerificar código
POSTiam/auth/verify/mailVerificar correo
GETiam/auth/verify/mail/token/:tokenValida correo (Manda correo de bienvenida)
POSTiam/auth/reset/passwordReestablecer contraseña
POSTiam/auth/signupRegistrarse

Endpoints user self

MethodEndpointDescription
GETiam/auth/meObtener información de usuario autenticado
PUTiam/auth/profileActualizar perfil
PUTiam/auth/profile/picturaActualizar solo la foto de perfil
PUTiam/auth/reset/passwordActualizar contraseña
POSTiam/auth/send/verify/phoneEnviar código al teléfono de la cuenta para verificarla
POSTiam/auth/verify/phoneValida teléfono del usuario de la cuenta
POSTiam/auth/logoutCerrar sesión

Endpoints user

MethodEndpointDescription
POSTiam/userCrear usuario
GETiam/userObtener todos los usuario
GETiam/user/:USER_IDObtener detalle de usuario
PUTiam/user/:USER_IDActualizar usuario
PUTiam/user/:USER_ID/statusActivar o desactivar usuario
PUTiam/user/password/:USER_IDActualizar la constraseña de un usuario
DELETEiam/user/:USER_IDEliminar usuario
GETiam/user/count/allObtiene el número de usuarios

Endpoints funtions

MethodEndpointDescription
POSTiam/functionsCrear función
PUTiam/functions/:FUNCTION_IDActualizar función
PUTiam/functions/:FUNCTION_ID/statusActivar o desactivar función
GETiam/functionsObtener todas las funciones
GETiam/functions/:FUNCTION_IDObtener detalle de la función
DELETEiam/functions/:FUNCTION_IDEliminar función
GETiam/functions/count/allObtiene el número de funciones

Endpoints permission

MethodEndpointDescription
POSTiam/permissionCrear permiso
PUTiam/permission/:PERMISSION_IDActualizar permiso
PUTiam/permission/:PERMISSION_ID/statusActivar o desactivar permiso
GETiam/permissionObtener todas los permisos
GETiam/permission/:PERMISSION_IDObtener detalle de la permiso
DELETEiam/permission/:PERMISSION_IDEliminar permiso
GETiam/permission/count/allObtiene el número de permisos

Endpoints menu

MethodEndpointDescription
POST/iam/menuCrea un elemento de menú
PUT/iam/menu/:MENU_IDActualiza un elemento de menú
PUT/iam/menu/:MENU_ID/statusActiva o desactiva un menú
GET/iam/menuObtiene todos los elementos de menú
GET/iam/menu/:MENU_IDObtiene el detalle de un elemento de menú
DELETE/iam/menu/:MENU_IDElimina un elemento de menú
POST/iam/menu/orderOrdena los elementos de menú
GETiam/menu/countObtiene el número de menús

Aloux-AWS

Aggregate file

// Require
const { AlouxAWS } = require('aloux-iam')


// variables
/*
* AWS_REGION
* AWS_BUCKET
*/

/**
 * pathFile = folder/file_name-file_id
 * file     = req.files.property
 */
// a constant is created to save the new element
const result = await AlouxAWS.upload('folder/file_name', req.files.data)

Eliminate many files

// Require
const { AlouxAWS } = require('aloux-iam')


// variables
/*
* AWS_REGION
* AWS_BUCKET
*/

/**
 * files = [{key: 'folder/file1'},{key: 'folder/file1'}]
 */
// delete selected files
const files = [{key: 'folder/file1.png'},{key: 'folder/file1.png'}]
const deleteFiles = await AlouxAWS.deleteMany(files)

Eliminate file

// Require
const { AlouxAWS } = require('aloux-iam')


// variables
/*
* AWS_REGION
* AWS_BUCKET
*/

/**
 * file = folder/file_name
 */
// delete the file
const file = 'folder/file_name.png'
const deleteFile = await AlouxAWS.delete(file)

Usage for emails

Send email

// Require
const { AlouxAWS } = require('aloux-iam')


// variables
/*
* AWS_REGION
* AWS_EMAIL_SENDER
*/

/**
 * email: Destination email
 * message: Mail body
 * subject: Mail subject
 */
// a constant is created to request the data from the req.body.
const { email, message, subject } = req.body
const sendEmail = await AlouxAWS.sendCustom(email, message, subject)

// example of the messages variable
// this variable must be sent as a string if you want to send modified HTML
/*

message: "<!DOCTYPE html><html lang='en'><head><meta charset='UTF-8'><meta name='viewport' content='width=device-width, initial-scale=1.0'><title>Document</title></head><body><h1>Information</h1></body></html>"

*/

Usage for sns

Send sns

// Require
const { AlouxAWS } = require('aloux-iam')


// variables
/*
* AWS_REGION
*/

/**
 * phoneNumber: Destination number
 * message: Message body
 */
// a constant is created to request the data from the req.body.
const { phoneNumber, message } = req.body
const sendSns = await AlouxAWS.sendMessagePhone(phoneNumber, message)

// example of the phoneNumber variable
// this variable must be sent as a string and taking into account the telephone prefix

/*

phoneNumber: "+52244-------"

*/
0.0.46

3 days ago

0.0.47

3 days ago

0.0.48

3 days ago

0.0.49

3 days ago

0.0.42

22 days ago

0.0.43

22 days ago

0.0.44

22 days ago

0.0.45

22 days ago

0.0.40

1 month ago

0.0.41

1 month ago

0.0.39

1 month ago

0.0.37

2 months ago

0.0.38

2 months ago

0.0.33

2 months ago

0.0.34

2 months ago

0.0.35

2 months ago

0.0.36

2 months ago

0.0.32

2 months ago

0.0.30

2 months ago

0.0.31

2 months ago

0.0.29

2 months ago

0.0.28

2 months ago

0.0.26

3 months ago

0.0.27

3 months ago

0.0.25

3 months ago

0.0.23

3 months ago

0.0.24

3 months ago

0.0.22

3 months ago

0.0.21

3 months ago

0.0.20

3 months ago

0.0.15

3 months ago

0.0.16

3 months ago

0.0.17

3 months ago

0.0.18

3 months ago

0.0.19

3 months ago

0.0.14

3 months ago

0.0.13

4 months ago

0.0.11

4 months ago

0.0.12

4 months ago

0.0.10

5 months ago

0.0.9

5 months ago

0.0.8

5 months ago

0.0.7

5 months ago

0.0.6

5 months ago

0.0.5

6 months ago

0.0.4

6 months ago

0.0.3

6 months ago

0.0.2

7 months ago

0.0.1

7 months ago

0.0.0

7 months ago