1
resposta

Erro ao tentar carregar bcryptjs

Flávio, fiz os dois cursos de Typescript 1 e 2, e iniciei um projeto com a tela de login. Gostaria de fazer a criptografia do password, então instalei o bcryptjs e o seu @types. No controlador que chamei de LoginController.ts importei os métodos:

import { genSaltSync, hashSync } from "bcryptjs";

.. código omitido

        // Generate a salt
        let salt = genSaltSync(10);
        // Hash the password with the salt
        let hash = hashSync(String(this._password), salt);

e o Typescript compilou perfeitamente, o problema que quando a página é carregada ele não importa o bcrypt.js

Erro no console:

Error: (SystemJS) XHR error (404 Not Found) loading http://localhost:3000/bcryptjs.js

Mantive o SystemJS sem alteração, devo configurar o quê para resolver?

Obrigado

1 resposta

Olha, se o bcrypt não estiver dentro da pasta do seu projeto publica, ele jamais será carregado. É isso que esta acontecendo. Ou o nome do arquivo esta errado ou ele não faz parte da pasta publica da aplicação. Se ele estiver dentro de node_modules ele não será liado por padrão. Para que você conseguia ler, é necessário uma infra específica com esse suporte, o que não tem relação com typescript. Um exemplo é o Webpack que cria o bundle para você e consegue enxergar a pasta node_modules.

Todavia, vale uma reflexão. Você quer criptografar no lado do cliente, é isso mesmo? Olha, se sua conexão é HTTPS, a senha e toda informação será trafegada de maneira segura. Além disso, quem deveria criptografar essa senha é o seu servidor, pois dessa maneira ninguém saberá qual biblioteca você usou muito menos o algoritmo e outros detalhes.

Sucesso e bom estudo meu aluno!