A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Autenticaci贸n: login

9/29
Recursos

Aportes 29

Preguntas 6

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Muy buenas clases! Gracias!
Una recomendaci贸n que no hace al funcionamiento pero ayuda a orientarse mejor respecto al archivo con el que estamos trabajando en cada momento, o localizar m谩s r谩pidamente los errores, etc:
A cada archivo network, controller u otros que se vayan agregando a la app, agregarle el nombre del componente al cual pertence.
Por ejemplo:
en el caso del componente user: user-network.js, user-controller.js
En el caso de auth: auth-network.js, auth-controller.js
Esto ayuda tambi茅n a localizarlo m谩s r谩pidamente en la funci贸n de b煤squeda del editor que usemos.
!! Obviamente el index.js queda como index.js para que pueda cumplir la funci贸n que explica el profesor =) !!

Una clase epica!

hace 4 meses deje este curso en esta clase porque no entendia nada me frustre y lo deje, hoy estoy aqui de nuevo, agarre fuerzas, volvi a ver el curso de node basico que lo dicta Carlos y ahora voy por este video entendi茅ndolo a la perfecci贸n.! 馃憤馃徎

Me gusta m谩s programar de este modo tipo Error First (debe tener otro nombre) pero siento que es m谩s limpio porque te quita un mont贸n de indexados de bloques. Si alguna validaci贸n no cumple retornas o lanzas excepciones, si no, sigues el flujo en el mismo nivel de indexado.

const data = await store.query(TABLA, { username: username });

if (data.password !== password) {
    throw new Error('Informacion invalida')
}
        
// Generar token;
return auth.sign(data);

Recomiendo este paquete module-alias para cambiar

required('../../../auth')

por

required('@auth')

Una duda, lo 煤nico es que al generar el token de acceso, le estamos pasando data del usuario y con ello la contrase帽a, eso no ser铆a buena pr谩ctica no?

La contrase帽a deber铆a ir en el token? una vez autenticado en el back, por que necesitar铆a enviar la contrase帽a en el token?

que clase de nivel鈥

Excelente clase!

tambien pueden generar el token mediante una promesa y a帽adiendole un tiempo de expiracion

const jwt = require('jsonwebtoken');

const generateJWT = (id) => {
    return new Promise((resolve, reject)=> {
         const payload = { id };
         jwt.sign(payload, 'secreto', {expiresIn: '1h'}, (err, token)=> {
            if(err){
                console.log(err.message);
                reject('No se pudo generar el token');
            }else{
                resolve(token);
            }
         });
    })
}

module.exports = generateJWT;

IMPORTANTE SABER ESTO SI NO USAS bodyParser:

app.use(express.urlencoded({extended: true})) //* As铆 ya no tenemos que instalar body-parser
app.use(express.json()) //! Pero es importante usar esta l铆nea tambi茅n

Estuve muchas horas atorado por no saber que ten铆a que usar la segunda l铆nea.

Alguien me podria ayudar no logre entender mucho de esta clase y ya la e visto como 4 veces , hay pasos que no entiendo muy bien que son igual en el codigo estoy muy perdido

Si quieren ver m谩s acerca de la documentaci贸n del paquete de JWT, les dejo el siguiente link, est谩 incre铆ble馃憤馃憤 : https://www.npmjs.com/package/json-web-token

muy buena clase.

Excelente clase. JWT es una herramienta muy buena yo la he usado con angular

exelente

que gran claseee, me re abri贸 la mente esto de JWT jajaja

No te compliques la vida, solo tienes un parametro! ajaja

Auth/index.js

const jwt = require('jsonwebtoken');

function sign(data) {
    return jwt.sign(data, 'secreto');
};

module.exports = {
    sign,
}

/api/components/auth/controller.js

    async function login(username, password) {
        //defining where is the dat a coming
        const data = await store.query(TABLA, { username: username })
        console.log(data, 'auth controller');
        if (data.password === password) {
            // generate token
            return auth.sign(data);
        } else {
            throw new Error('Invalid information')
        }
    }```

Una pregunta por que el uso throw new Error y no Promise.reject? gracias

Crear token con JWT

炉\锛(銉)锛/炉

Alguno sabe como hago para que cuando me imprima el body del usuario nuevo me incluya el password, para luego poder comparar este y generar el token.

Creo que para usar jsonwebtoken se debe instalar primero con npm, por eso ten铆a un error.

<code>npm i jsonwebtoken

alguien sabe porque esto falla ?

    async function login(username, password){
        const data = await store.query(TABLA, { username: username });
        if (data.password === password) {
            // Generar token;
            return 'TOKEN' 

        }else{
            throw new Error('Informaci贸n invalida')
        }

data.password = 1234
pasword = 1234

en npm no confundir jwt con jsonwebtoken

Se me ocurri贸 este c贸digo para poder hacer un query que permite buscar m煤ltiples campos,

const DB = {
    user: [
        {
            id: 1,
            age: 12,
            name: "Jorge",
        },
        {
            id: 2,
            age: 123, 
            name: "Mendez",
        },
        {
            id: 3,
            age: 124,
            name: "Ortega",
        },
    ],
};


const query = (tabla, findeQuery) => {
    const QUERY = Object.entries(findeQuery);
    const DATA = DB[tabla];
    const REQUEST = QUERY.map(data => {
        const [key, value] = data;
        return DATA.find(item => item[key] === value);
    }).filter((value, index, current) => current.indexOf(value) === index);
    return REQUEST[0];
 };

finder("user", { id: 1, name: "jorge"});


se que no es la mejor soluci贸n, pero espero les sirva

vole 馃槂