-
基本的なパスワードの確認と一致のチェック:
const Joi = require('joi'); const schema = Joi.object({ password: Joi.string().min(8).required(), confirmPassword: Joi.string().valid(Joi.ref('password')).required() }); const data = { password: 'password123', confirmPassword: 'password123' }; const { error } = schema.validate(data); if (error) { console.error(error.details); } else { console.log('パスワードが正常です。'); }
-
カスタムエラーメッセージの設定:
const Joi = require('joi'); const schema = Joi.object({ password: Joi.string().min(8).required().error(new Error('パスワードは少なくとも8文字以上である必要があります。')), confirmPassword: Joi.string().valid(Joi.ref('password')).required().error(new Error('パスワードが一致しません。')) }); const data = { password: 'password123', confirmPassword: 'password456' }; const { error } = schema.validate(data); if (error) { console.error(error.message); } else { console.log('パスワードが正常です。'); }
-
パスワードの強度要件を追加:
const Joi = require('joi'); const schema = Joi.object({ password: Joi.string().min(8).required().pattern(new RegExp('^[a-zA-Z0-9]{3,30}$')).error(new Error('パスワードは英数字の組み合わせである必要があります。')), confirmPassword: Joi.string().valid(Joi.ref('password')).required().error(new Error('パスワードが一致しません。')) }); const data = { password: 'password123', confirmPassword: 'password123' }; const { error } = schema.validate(data); if (error) { console.error(error.message); } else { console.log('パスワードが正常です。'); }
これらの例では、Joiスキーマにパスワードと確認用パスワードのフィールドを定義し、バリデーションルールを追加しています。schema.validate(data)
を使用してデータをバリデートし、エラーがある場合はエラーメッセージを表示します。パスワードと確認用パスワードが一致しない場合や、指定された強度要件を満たさない場合にエラーが発生します。
このように、Joiを使用することで、簡単にパスワードの確認と一致のチェックを実装することができます。