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
であり、デフォルトでは -
ユーザーが有効なサインアップフォームを送信したら、新しいユーザー (このユーザーの
active
はfalse
当初は) - 暗号ライブラリで長いランダムな文字列(通常128文字が良い)を作成し、ユーザーIDへの参照とともにデータベースに保存します。
- サーバー上のルートを指すリンクの一部として、ハッシュを含む電子メールを指定された電子メールアドレスに送信します。
- ユーザーがリンクをクリックしてルートにアクセスすると、URLで渡されたハッシュをチェックする。
-
ハッシュがデータベースに存在する場合、関連するユーザーを取得し、そのユーザーの
active
プロパティにtrue
- データベースからハッシュを削除、もう必要ありません。
あなたのユーザーの認証が完了しました。
関連
-
[解決済み】Google spreadsheet api Requestに不十分な認証スコープがあった。
-
[解決済み] Expectアサーションの型エラー -> expect(...).toExistは関数ではない
-
[解決済み] http-server コマンドが見つかりません。
-
[解決済み] エラーメッセージ MongoError: bad auth URI 文字列で認証に失敗しました。
-
[解決済み] Yarn にパッケージを強制的に再インストールさせるにはどうしたらいいですか?
-
[解決済み] エラーです。Expressでビューの検索に失敗しました
-
[解決済み] ノード / エクスプレス EADDRINUSE、アドレスはすでに使用中です - サーバーを停止してください。
-
[解決済み] Expressで"? "の後にあるGETパラメータにアクセスするにはどうすればよいですか?
-
[解決済み] nodeやExpressを使用してJSONを返す正しい方法
-
[解決済み】Expressで完全なURLを取得する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Nodejs: Errorを解決する方法。ENOENT: そのようなファイルまたはディレクトリがありません
-
[解決済み】エラーです。EACCES: 権限が拒否されました、アクセス '/usr/local/lib/node_modules' 。
-
[解決済み] 非推奨パッケージに関するNPM警告メッセージ
-
[解決済み】ENOENT, そのようなファイルまたはディレクトリがありません。
-
[解決済み】ブロックスコープの宣言は、ストリクトモード以外ではまだサポートされていません。
-
[解決済み】Passport.js - エラー: ユーザーのセッションへのシリアライズに失敗しました。
-
[解決済み] EventEmitter のメモリリークの可能性が検出された
-
[解決済み] nodejsでfindAllのソート順を続編にする
-
[解決済み] エラーメッセージ MongoError: bad auth URI 文字列で認証に失敗しました。
-
[解決済み] エラー: ノード出力を "|head" にパイプするときに EPIPE を書き込む。