1

確認URL(電子メールの本文にあります)を含む電子メールをユーザーに送信するサーバー側のJavaプログラムを作成中です。

JavaMail API を使用して (電子メールを送信できる) サーブレットを既に作成しています...実際の一意の URL をどのように設計/実装するのか疑問に思っています (エンドユーザーがクリックすると、ブラウザが起動し、「確認済み. " Web ページで)? 確認済みは、エンド ユーザーの電子メール アドレスと一致する必要があります (確認のため)。データベースで作成されたユーザーと一致するトークンを生成する必要がありますか?それとも、URL に追加された HttpSessions または Cookie を使用しますか?

誰かが私を正しい方向に向けることができれば幸いです...

楽しいプログラミング、

マイク

4

1 に答える 1

2

このためのデータベースを購入する余裕がある場合、最良のアプローチは次のように機能するはずです。

  1. 確認メールを送信する前に、セッション ID をキーとしてレコードを作成します。メールアドレス、有効期限、その他すべての情報をデータベースに保存しました。確認リンクでセッション ID をエンコードします。また、電子メールでホット リンクが禁止されている場合に、確認コードを手動で入力する方法についての説明も含める必要があります。手動入力には、短いセッション ID を使用する必要があります。
  2. ユーザーがリンクをクリックするか、セッション ID を手動で入力すると、データベースに移動してセッションを取得します。電子メールが一致し、有効期限が切れていない場合、ユーザーは確認されます。

他のいくつかのアプリケーションでは、このためだけにデータベースを作成したくないため、電子メール アドレスの HMAC (シークレット ハッシュ) を作成し、それを確認シークレットとして使用します。この場合、メールはリンクで提供される必要があります。

HttpSession と Cookie は、ユーザーが数日後に確認リンクをクリックすると消えてしまう可能性があるため、機能しません。

于 2009-08-19T02:07:22.513 に答える