見出し画像

The Web Developer Bootcamp 2023 セクション50/61

認証はWeb開発において非常に重要な要素であり、アプリケーションに実装する前にその概念を理解することが重要です。この記事では、認証、認可、パスワードの保存の基本を探り、認証を使ったシンプルなエクスプレスアプリを構築する方法について説明します。

パスワードの保存に関しては、決して平文でデータベースに保存しないことが重要です。その代わりに、パスワードはハッシュ関数を使ってハッシュ化し、関数の出力をデータベースに保存する必要があります。こうすることで、万が一の侵害時にハッカーが機密情報にアクセスすることが困難になります。パスワードの保存によく使われるハッシュ関数はいくつかありますが、アプリに認証を組み込むのに役立つPassportのようなツールを使う前に、その概念を理解することが重要です。

パスワードのセキュリティのもう一つの側面は、パスワードにランダムな情報を加えてからハッシュ化する、パスワードのソルティングの使用です。これにより、パスワードハッシュのクラッキングを防ぐことができ、ハッカーが機密情報にアクセスすることがより困難になります。さらに、Bcrypt などのライブラリがあり、パスワードのソルティングのプロセスをより簡単に行うことができます。

よく使われるパスワードハッシュ関数にBcryptがあります。JavaScriptには、Bcryptのためのライブラリが2つあります。BcryptとBcrypt JSです。BcryptはサーバーサイドJavaScript用で、C++の上に構築されているため、高速に動作します。一方、Bcrypt JSは、完全にJavaScriptで書かれており、クライアント側とサーバー側の両方で動作させることができます。この記事では、Bcryptを使用してパスワードをハッシュ化し、与えられたパスワードがデータベースに保存されているハッシュ化されたパスワードと一致するかどうかを検証する方法を紹介します。

最後に、Webアプリケーションに基本的なログアウト機能を実装する方法について説明します。ログアウトは、セッションのユーザーIDを削除するだけで、その人が現在ログインしていることを確認する唯一の情報である。また、ログインしているかどうかを確認するための簡単なミドルウェアをexpressで記述する方法と、そのコードをより効率的にリファクタリングする方法についても解説しています。

以上のことから、認証はWeb開発において重要な要素であり、アプリケーションに実装する前にその概念を理解することが肝要である。Passport、Bcryptなどのツールを使用することで、開発者は機密情報を保護する安全で効率的なアプリケーションを構築することができます。

次のページへ

前のページへ

まとめページへ

「超勇敢なウサギ」へ

この記事が気に入ったらサポートをしてみませんか?