前回は、Prismaを使って、ユーザー登録をしました。

パスワードは、今のところ登録した内容のまま保存されます。

これでは、セキュリティ上よくないので、暗号化して保存します。

コードは、前回のコードを使用します。

コードを暗号化するには、bcryptjsというライブラリを使用します。

bcryptjsは、パスワードをハッシュ化してくれるライブラリです。

ターミナルで、npm install --save bcryptjs @types/bcryptjsを実行します。

resolversフォルダのMutation.tsで、bcryptをインポートします。

import bcrypt from "bcryptjs";

bcryptのhashを設定します。

対象は、passwordで、追加する文字数を10とします。

const hashedPassword = await bcrypt.hash(password, 10);

newUserhashedPasswordを指定しましょう。

const newUser = await prisma.user.create({ 
  data: {
    email, 
    password: hashedPassword,
  }
});

では、サーバーを起動して、ブラウザで確認します。

サーバーを起動後、TSError: ⨯ Unable to compile TypeScriptのようなエラーが発生する場合があります。

ターミナルでnpm install --save ts-node@latestを実行すると、エラーが解除されるかもしれません。

image2

GraphQLで新しくユーザー情報を登録します。

image3

Signupボタンをクリップすると、

image4

設定したパスワードは、『aaaa』でしたが、ハッシュ化され、長い文字列になりました。

Prisma Studioで確認すると、

image5

ハッシュ化されたpasswordが保存されました。

コードの全文は、以下の通りです。

次回は、ログイン機能を実装します。

ブログ一覧