このチュートリアルは、node.js Webアプリケーションにユーザー登録とログインシステムの構築を示しています。 強化されたセキュリティのために入力検証とパスワードハッシュをカバーします。
アプリケーションのセットアッププロジェクトディレクトリ(例: "Site-auth")を作成することから始めます。 このディレクトリ内でnpmを初期化:
パスワード検証では、英数文字で構成される6〜30文字を実施する正規表現
npm init -y
登録フォームのデータには/^[a-zA-Z0-9]{6,30}$/
からアクセスできます。検証エラーにより、エラーメッセージと登録ページへのリダイレクトが発生します。 重複したメールアドレスも防止されます。 重要なことに、データベースストレージの前にbcryptを使用してパスワードがハッシュされます:
result
登録の成功には、成功メッセージが表示され、ログインページにリダイレクトされます。 サーバーを起動してください:
result.value.password = hash
登録ページにアクセスしてください
node app.js
https://localhost:5000
に追加されます。 ログイン検証スキーマは、JOI:を使用して定義されています
ログインルートは、GET(ログインページのレンダリング)と投稿(ログイン試行の処理)リクエストの両方を処理します。
/routes/users.js
成功したログインリダイレクトをダッシュボードにリダイレクトします。
const loginSchema = Joi.object().keys({ email: Joi.string().email().required(), password: Joi.string().regex(/^[a-zA-Z0-9]{6,30}$/).required() });
router.route('/login') .get((req, res) => { res.render('login') }) .post(async (req, res, next) => { // ... (login validation and password comparison logic) ... });
ダッシュボードの実装
単純なダッシュボードルートが
に追加されます
/routes/index.js
router.get('/users/dashboard', (req, res) => { res.render('dashboard') });
このチュートリアルは、node.jsアプリケーションでの安全なユーザー認証の基盤を提供します。 常にユーザー入力を検証し、パスワードを安全にハッシュすることを忘れないでください。 完全なソースコードはGitHubで利用できます。 このチュートリアルは、ナイジェリアのラゴスに拠点を置くソフトウェア開発者であるメアリーオコスンからの貢献により更新されました。
以上がnode.jsのサイト認証:ユーザーのサインアップとログインの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。