1. ホーム
  2. node.js

express/nodeを使ったメールアドレスの確認方法を教えてください。

2023-09-27 20:57:54

質問

ユーザーの電子メールが本物であることを確認するために、ユーザーの電子メールアドレスの検証を構築しようとしています。ユーザーの電子メールアドレスを確認するために、どのようなパッケージを使用する必要がありますか?今のところ、私はmongooseとexpressを使用しています。

コード例

var UserSchema = new mongoose.Schema({
    email: { type: String, unique: true, lowercase: true }
    password: String
});

var User = mongoose.model('User', UserSchema);

app.post('/signup', function(req, res, next) {
   // Create a new User
   var user = new User();
   user.email = req.body.email;
   user.password = req.body.password;
   user.save();
});

app.postのコードで、ユーザーのメールアドレスを確認するにはどうすればよいですか?

どのように解決するのですか?

あなたが探しているものは、アカウント検証またはメール検証と呼ばれるものです。これを実行するNodeモジュールはたくさんありますが、原理は次のようになります。

  • Userモデルには active 属性は false であり、デフォルトでは
  • ユーザーが有効なサインアップフォームを送信したら、新しいユーザー (このユーザーの activefalse 当初は)
  • 暗号ライブラリで長いランダムな文字列(通常128文字が良い)を作成し、ユーザーIDへの参照とともにデータベースに保存します。
  • サーバー上のルートを指すリンクの一部として、ハッシュを含む電子メールを指定された電子メールアドレスに送信します。
  • ユーザーがリンクをクリックしてルートにアクセスすると、URLで渡されたハッシュをチェックする。
  • ハッシュがデータベースに存在する場合、関連するユーザーを取得し、そのユーザーの active プロパティに true
  • データベースからハッシュを削除、もう必要ありません。

あなたのユーザーの認証が完了しました。