サイトを開発する際のアーキテクチャ設計において、ユーザーの認証にはメールとパスワードを利用するのが一般的でしょう。この設計は身に染み付いていて、なぜユーザーにパスワードを作成させるのか、考えもしないかもしれません。私たちは慣れてしまったのです。ユーザーはパスワードを必要としない可能性があります。すべてのユーザーがSNSのアカウントを持っているわけでもなく、あなたのサイトでそのアカウントを使用したいと考えているとも限りません。あなたはどのようにしてパスワードを使わずユーザーを認証しますか?その回答はこの記事を読めばわかります。Huntそもそもパスワードそれ自体に問題があります。あなたや、あなたのユーザーにとっても良いものではありません。極端に言えば、パスワードは、サイトのオーナーにとってシステムの脆弱性です。進化するので、いずれ無意味になるでしょう。万が一データベースに侵入された場合、あなたとあなたのユーザーにとっても大きな打撃をうけるでしょう。ユーザーにとって、パスワードの入力は鬱陶しいものです。リテラシーの低いユーザーは、いつも使ってるパスワードを使い、パスワードを失うリスクが高くなります。リテラシーが高いユーザーは、そのサイト固有のパスワードを使うか、パスワードマネージャを利用するでしょう。パスワードマネージャはすでにダーティーハックであり、パスワードの無能さと非効率性に気づくべきです。定期的にパスワードを変更することをを強要したり、特殊文字を含めることを必須にすることで、ユーザーの生活を不便なものにすることになるでしょう。するべきか?答えは、パスワードを利用しないことです。メールのみを使います。ユーザーがサイトに登録した時点で、既にメールアドレスに依存しています。確認リンク付きのメールを送信したり、ユーザーのパスワードをリセットする際にメールを使うと思います。「パスワードのリセット」はすでに矛盾しているようにみえます。メールのリンクをクリックするだけでパスワードを変更できるのです。変ですよね?それなのになぜ、ユーザーにパスワードを作ることを強要し、さらにはあなたのお気に入りの特殊文字を含めることを強要させるのでしょう?ユーザーを認証するときは、登録確認メールを送るときと同様に、リンクを含むメールを送信するだけです。ユーザーを認証するにはこれで十分です。サイトよりもセキュリティが強固で、ハッカーの攻撃に備えられています。パスワードの保管はプロに委ねましょう。用いたシンプルなサイトのデータベース構造を見てみましょう。テーブルと同じであるべきです。このシステムにおいては、役割が同等であるためです。カラムは、重複するため外部キーにしていません。ある必要はありません。手動で入力しやすくするために短くすることもできます。した場合、トークンの衝突やセキュリティリスクは悪化します。アクセス制限をしたい等がある場合に使用してください。付与スパム防止のために、10分毎に1回しかメールを送信しないなど、制限を行ってください。この場合、パスワードを利用したほうが簡単です。一見するとパスワードを捨てるという考え方はクレージーに見えますが、それは多くのメリットをもたらし、あなたとあなたのユーザーの生活を楽にするでしょう。原著者の許諾を得て翻訳・掲載しています。海外で話題の記事を翻訳して届けるエンジニアのためのメディアです。