• ENTRAR
  • No hay productos en el carrito.

Inconvenientes con el Login

Viendo 12 publicaciones - del 1 al 12 (de un total de 12)
  • Autor
    Publicaciones
  • #14759

    francoguns16
    Participante

    Saludos cordiales,

    Despues de leer en internet recien pude levantar mi servidor NODE e importar mi base de datos. Cuando importo la base de datos no hay registros en usuario, para lo cual tuve que crear un usuario a mano (1,”admin”, “admin@gmail.com”,”123456″, “2018-03-25 20:00:00”).

    Cuando trato de logiarme en el formulario me sale el siguiente error en consola:

    POST https://42c4045d.ngrok.io/api-rest-users-mysql/login 502 (Bad Gateway)

    (index):1 Failed to load https://42c4045d.ngrok.io/api-rest-users-mysql/login: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘http://localhost:8100’ is therefore not allowed access. The response had HTTP status code 502.

    core.es5.js:1085 ERROR Response {_body: ProgressEvent, status: 0, ok: false, statusText: “”, headers: Headers, …}

    Y el servidor de NODE deja de funcionar con este mensaje:

    ionic3-api-cdw/ionic3-api/node_modules/mysql/lib/protocol/Parser.js:80

    throw err; // Rethrow non-MySQL errors

    ^

    Not a valid BCrypt hash.

    npm ERR! code ELIFECYCLE

    npm ERR! errno 1

    npm ERR! curso-ionic3-api@0.0.0 start: node ./bin/www

    npm ERR! Exit status 1

    npm ERR!

    npm ERR! Failed at the curso-ionic3-api@0.0.0 start script.

    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

    npm ERR! A complete log of this run can be found in:

    npm ERR!     /home/luna/.npm/_logs/2018-03-31T20_17_13_810Z-debug.log

    No he logrado poder solucionar este problema, podrias ayudarme, gracias.

    #14760

    Cursosdesarrolloweb
    Jefe de claves

    Buenos días,

    Vamos por partes, primero vamos a arreglar el problema de cors, instala y configura este package en la api y reinicia el servidor, con eso debería desaparecer el primer error.

    Quedo atento.

    #14762

    francoguns16
    Participante

    Saludos,

    Realice lo siguiente:

    1.- Dentro de la carpeta del servidor (ionic3-api) puse: $ npm install cors

    Y me dio el siguiente resultado:

    + cors@2.8.4

    updated 1 package in 1.757s

    Dentro de app.js ya estaba la linea:

    var cors = require(‘cors’)

    2.- Vuelvo a ingresar mi usuario y contraseña en google chrome y continua mostrando el mismo resultado:

    Failed to load https://febb838a.ngrok.io/api-rest-users-mysql/login: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘http://localhost:8100’ is therefore not allowed access. The response had HTTP status code 502.

    Que estoy haciendo mal?

    • Esta respuesta fue modificada hace 4 meses, 2 semanas por  francoguns16.
    #14764

    Cursosdesarrolloweb
    Jefe de claves

    Hola Francisco,

    ¿Además de la línea que comentas se está utilizando en tu app?, aquí puedes ver la configuración.

    Ten en cuenta que tal como se entrega el servidor debe funcionar sin problemas, es el que yo he utilizado para desarrollar el curso.

    Por cierto, reinicia el servidor para asegurarte que coge los nuevos cambios, nunca está de más.

    Quedo atento.

    #14765

    francoguns16
    Participante

    Extraño, estoy utilizando exactamente el servidor que brindaste. Lo que hice fue descargarme una herramienta para chrome “Allow-Control-Allow-Origin” y pude por el momento solucionar el problema.

    Ahora lo errores que tengo son:

    OPTIONS https://febb838a.ngrok.io/api-rest-users-mysql/login 502 (Bad Gateway)

    (index):1 Failed to load https://febb838a.ngrok.io/api-rest-users-mysql/login: Response for preflight has invalid HTTP status code 502.

    core.es5.js:1085 ERROR Response {_body: ProgressEvent, status: 0, ok: false, statusText: “”, headers: Headers, …}

    #14766

    Cursosdesarrolloweb
    Jefe de claves

    Hola Francisco,

    ¿Puedes confirmarme que en el archivo de rutas de la api tienes el método post login?, /routes/api-rest-users-mysql.js.

    
    .post('/login', (req, res, next) => {
            User.findOne(req.body.username, req.body.password, (error, user) => {
                if ( ! error) {
                    return res.json({user});
                }
                return res.json({user: null});
            })
        })
    

    Saludos.

    #14767

    francoguns16
    Participante

    Si, en la linea 18 del archivo <span style=”color: #444444; font-family: Varela; font-size: 14px;”>/routes/api-rest-users-mysql.js</span>

    #14768

    Cursosdesarrolloweb
    Jefe de claves

    Trata de acceder a cualquier ruta get de tu aplicación con la url de ngrok para ir eliminando problemas, también trata de utilizar POSTMAN para realizar una petición post a cualquier otra ruta que tú mismo puedas crear, no tiene mucho sentido el problema que estás teniendo y quiero ir descartando.

    #14769

    francoguns16
    Participante

    Cuando reviso esta url: https://febb838a.ngrok.io/api-rest-users-mysql/ me devuelve el json:
    <pre style=”word-wrap: break-word;”><span style=”color: #000000;”><span style=”white-space: pre-wrap;”>[{“id”:1,”username”:”admin”,”email”:”admin@gmail.com”,”password”:”123456″,”created_at”:”2014-10-26T01:00:00.000Z”}]

    Pero cuando me intento logear aparte que me muestra estos errores en el navegador:
    </span><span style=”white-space: pre-wrap;”>
    POST https://febb838a.ngrok.io/api-rest-users-mysql/login 502 (Bad Gateway)
    ERROR Response {_body: “↵<!doctype html5>↵<html>↵ <head>↵ <style…↵ ↵ </div>↵ </body>↵</html>↵”, status: 502, ok: false, statusText: “Bad Gateway”, headers: Headers, …}

    </span><span style=”white-space: pre-wrap;”>Y el servidor se detiene con este error:

    /home/luna/Descargas/ionic3-api-cdw/ionic3-api/node_modules/mysql/lib/protocol/Parser.js:80
    throw err; // Rethrow non-MySQL errors
    ^
    Not a valid BCrypt hash.
    npm ERR! code ELIFECYCLE
    npm ERR! errno 1
    npm ERR! curso-ionic3-api@0.0.0 start: node ./bin/www
    npm ERR! Exit status 1
    npm ERR!
    npm ERR! Failed at the curso-ionic3-api@0.0.0 start script.
    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

    npm ERR! A complete log of this run can be found in:
    npm ERR! /home/luna/.npm/_logs/2018-04-01T17_41_56_790Z-debug.log
    </span></span>

    #14770

    Cursosdesarrolloweb
    Jefe de claves

    El problema está con el password de la base de datos, está en texto plano y bcrypt necesita un hash, modifica las rutas de la siguiente forma para añadir bcrypt y encriptar el password al guardar.

    
    var express = require('express');
    var router = express.Router();
    var User = require("../models/users");
    var bcrypt = require('bcrypt-nodejs'); //añadimos bcrypt
    
    router
        .get('/', (req, res, next) => {
            User.fetchAll((error, data) => {
                return User.response(res, error, data);
            })
        })
    
        .get('/:id', (req, res, next) => {
            User.findById(req.params.id, (error, data) => {
                return User.response(res, error, data);
            })
        })
    
        .post('/login', (req, res, next) => {
            User.findOne(req.body.username, req.body.password, (error, user) => {
                if ( ! error) {
                    return res.json({user});
                }
                return res.json({user: null});
            })
        })
    
        .post('/', (req, res, next) => {
            const user = {
                id: null,
                username: req.body.username,
                password: bcrypt.hashSync(req.body.password, bcrypt.genSaltSync(10)), //encriptamos el pass al guardar
                email: req.body.email
            };
    
            User.insert(user, (error, data) => {
                return User.response(res, error, data);
            })
        })
    
        .put('/:id', (req, res, next) => {
            const user = {
                id: req.params.id,
                username: req.body.username,
                password: req.body.password,
                email: req.body.email
            };
    
            User.update(user, (error, data) => {
                return User.response(res, error, data);
            })
        })
    
        .delete('/:id', (req, res, next) => {
            User.remove(req.params.id, (error, data) => {
                return User.response(res, error, data);
            })
        })
    
    module.exports = router;
    
    #14771

    francoguns16
    Participante

    Muchas gracias por la paciencia.

    El problema era siempre la contraseña que no estaba encryptada, a pesar que agregue el codigo que me enviaste continuaba saliendo el error, entonces lo que hice fue buscar un conversor en internet y cambie mi contraseña por el valor que deberia ser y todo funcionó muy bien.

    Con el codigo que me enviaste y tambien probe quitandolo todo funcionó genial.

    Muchas gracias.

    #14772

    Cursosdesarrolloweb
    Jefe de claves

    Te pido disculpas yo a ti por la molestia y perdida de tiempo.

    Saludos.

Viendo 12 publicaciones - del 1 al 12 (de un total de 12)

Debes estar registrado para responder a este debate.

Síguenos en las redes sociales para estar al tanto de los últimas novedades :)

Facebook
Facebook
Google+
Google+
https://www.cursosdesarrolloweb.es/forums/topic/inconvenientes-con-el-login">
Pinterest
Pinterest
top
Cursosdesarrolloweb ©. Todos los derechos reservados.
🔓Inscríbete a cualquier curso por 9€ y accede a todos los cursos gratuitos para siempre🔓
🌍Los cursos gratuitos son exclusivos de esta plataforma, ÚLTIMOS CURSOS EN 4K🌍
+ +

Login

Create an Account Back to login/register