これは、セキュリティのベストプラクティスに焦点を当てた、外部依存関係のないユーザーのサインアップとログイン機能の構築に関する長く詳細な技術的なブログ投稿です。 これは、元の意味とイメージの配置を維持している言い換えされたわずかに短縮されたバージョンです:
node.jsアプリケーションでのユーザーサインアップ&ログイン(パート3)
このブログ投稿では、Node.jsを使用してTwitter-Cloneアプリケーションの構築に関するシリーズを継続し、外部の電子メールサービスやその他の依存関係に依存せずにユーザーのサインアップとログインの実装に焦点を当てています。 コア認証ロジックは、ユーザーの作成と検証を処理するクラスにカプセル化されています。
Auth
クラスを使用して、セキュリティにAuth
アルゴリズムを使用します。これにより、堅牢なパスワード保護を提供しながら、外部の依存関係が回避されます。 Pass
クラスには、パスワードをハッシュし、保存されたハッシュに対するパスワード入力の検証方法が含まれています。 このシステムには、ユーザーの存在やパスワードが誤っているなど、さまざまなシナリオのエラー処理が含まれます。 OWASPガイドラインは、ユーザー名の存在を明らかにする明示的なエラーメッセージを回避することを提案していますが、この実装は、有益なエラーメッセージを提供することによりユーザーエクスペリエンスを優先します。
scrypt
アプリケーションのルーティング(Pass
class)は、サインアップとログインのリクエストを取得して投稿します。 サインアップとログインの成功したログインユーザーをプロファイルページにリダイレクトし、Cookieを使用してユーザーセッションを管理します。 Cookieは、改ざんを防ぐために秘密の鍵を備えたHMACを使用して署名されます。
プロファイルページ(App
完全なコードの例とテストは、元のブログ投稿で提供されており、Cookie処理機能とともに、parseCookies
、
クラスの実装を実証しています。タイプヒントにJSDOCを使用すると、コードの読みやすさと保守性が向上します。 ブログ投稿では、対応する機能を実装する前にテストの作成を紹介し、テスト駆動型開発(TDD)アプローチを強調しています。
GET /profile
Auth
ブログは、機能的なサインアップとログインシステム、安全なCookie処理、およびすべての外部依存関係なしで構築された基本的なプロファイルページで終了します。 より堅牢なエラー処理やより包括的なテストなどのさらなる改善が、生産対応のアプリケーションに提案されています。
以上が依存関係なくユーザーのサインアップとログインの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。