luarq

0.0.2 • Public • Published

API RESTFULL LUARQ

Para ejecutar en desarrollo

npm run dev

Para ejecutar en producción

npm run start

Prerequisitos

  • Nodejs
  • Mongodb

Autenticación

Login

Es necesario guardar el token tras crear un usuario, para ello usar la función:

    saveToken()
    const { saveToken } = require('Start/middleware/auth')

    async (access_token, _idUser) => {
        /**
         * 
         * @param {string} access_token Token de acceso generado por jwt
         * @param {ObjectId} _idUser id del usuario, dueño del token
         */
        await saveToken(access_token, _idUser)
    }

La configuración de esta se encuentra en app/start/middleware/auth.js

Para encriptar una contraseña se debe usarla función:

    new User(payload).encryptPassword(password) 

app/Services/User/UserServices.js

    'use strict'

    /**
     * Servicio UserServices
     */

    const User = require('App/Models/User')

    class UserServices {

        /**
         * 
         * @param {Object} payload Usuario
         * @param {string} payload.email Correo del usuario
         * @param {string} payload.password Clave del usuario
         */
        async createUser(payload) {
            try {
                const user = new User(payload)
                user.password = user.encryptPassword(user.password) 
                const userInserted = await user.save()
                return { status: 200, userInserted }
            } catch (error) {
                return { status: 500 }
            }
        }

    }

    module.exports = new UserServices

Logout

Para invalidar el token al cerrar sesión, para ello usar la función:

    revokeToken()
    const { revokeToken } = require('Start/middleware/auth')

    async () => {
        /**
         * 
         * @param {string} access_token Token de acceso generado por jwt
         */
        await revokeToken(access_token)
    }

La configuración de esta se encuentra en app/start/middleware/auth.js

Rutas protegidas

Para acceder a una ruta solo con autenticación, se debe expresar auth app/start/routes/index.js

    'use strict'

    /**
     * Establece todos los ficheros de las rutas que existirán
     */

    const { auth } = require('Start/middleware/auth')

    module.exports = (app) => {
        app.use('/api/test', auth, require('./api/test') ) // auth, para proteger a todo el fichero de rutas  
    }

Estas rutas ya no necesitan expresar auth ya que lo heredan del fichero anterior app/start/routes/api/test.js

    'use strict'

    /**
     * Rutas de Test
     */

    const { Router } = require('express')
    const router = Router()

    const { auth } = require('Start/middleware/auth')
    const TestController = require('Ctrl/Test/TestController')

    router.get('/session', TestController.getTestSession )


    module.exports = router

Readme

Keywords

none

Package Sidebar

Install

npm i luarq

Weekly Downloads

2

Version

0.0.2

License

MIT

Unpacked Size

13.9 kB

Total Files

17

Last publish

Collaborators

  • luisventurae