13

メールフィールドが1つだけの登録フォームがあります。ユーザーがメールアドレスを入力したら、登録リンクを送信する必要があります。

サインアップフォームを使用したこのNode.jsの例を見てきました。ただし、sendWelcome機能のみがあります。

登録メールを送信するNode.jsアプリの例はありますか?

4

1 に答える 1

26

私はこれまでそのような例を見たことがありませんが、あなたの二次的な質問は何ですか?あなたが提供した例は、電子メールを送信する方法をかなりよく示しています。別のオプションは、このパッケージを使用することです。

github.com/andris9/Nodemailer

これは、電子メールの送信方法についても十分に文書化されているようです。

したがって、サインアップシステムのセットアップ方法を知りたいと思います。e-mailこれを行う1つの方法は、token列を持つユーザーを登録するためのテーブルを用意することです。E-mail明らかなのtokenは、ランダムに生成された文字列(たとえば、ノードのcrypto.randomBytesメソッドを使用)であり、リンクの一部としてユーザーに送信されます。リンクを入力したら、データベースでこのトークンを検索し、見つかった場合は登録を続行します。

注意すべき2つのこと:トークンを作成するときは、トークンがデータベースにまだ存在していないことを確認してください。2番目:valid_until列を使用して数時間より古いトークンを削除することをお勧めします。

アップデート:

残念ながら、ノードのbase64エクスポートはURLセーフではありません。したがって、これは私が見つけた安全なトークンを取得するための最も簡単な方法です。

require('crypto').randomBytes(48, function(ex, buf) {
    token = buf.toString('base64').replace(/\//g,'_').replace(/\+/g,'-');
});

おそらく誰かがより良い解決策を思い付くでしょう。

于 2012-01-12T22:00:38.510 に答える