2011-07-30 12 views
3

1つのサービスがユーザーをアクティブにする方法に興味があります。シナリオは私がフォームに記入して送ったことです。その後、アクティベーションプロセスを続行したい場合、私は自分の電子メールをチェックしなければならないというメッセージがありました。私は、彼らはそれが私だったことを知っているか疑問www.theservice.com電子メールでユーザーをアクティブにする

:)

私が送信されるリンクでシナリオは、ユーザーのハッシュがログイン入っていることがわかっている。同様に、電子メールでアクティベーションリンクiwthメッセージがありましたサーバーがどのユーザーが入力してそのサーバーをアクティブにするかをサーバーが知るようにします。

どうすればいいですか?

EDIT:

の回答によると:奇妙なことは、私は私が受け取った私のリンクでトークンを持っていけないということです。リンクは単にwww.myservice.comであり、それにもかかわらずこのサービスは引き続き自分のアカウントを有効にすることができます。

どのように動作するか想像できるのはクッキーだけです。

+0

このサービスでは、フォームを記入して1台のマシンに送信し、別のマシンからアカウントを有効にできますか? –

答えて

1

メールメッセージはユーザーIDのその中にフォームとhtmlと隠しフィールドが含まれていてもよいです。ユーザーIDを認識し、アカウントの有効化を行うために、非表示のフィールド値が取得された、適切なサーバー上で送信されたリンクフォームをクリックしたとき。

function doSubmit() { 
     document.forms["form1"].submit(); 
    } 

<form id="form1" action="www.theservice.com" method="post"> 
    <a href="#" onclick="doSubmit()">Activate</a> 
    <input type="hidden" name="userIdForActivating" value="userId" /> 
</form> 
+0

私の質問と結びつく唯一の解決策 – gruber

2

あなたはハッシュを生成し、それをuser_idと一緒にデータベースに保存して、あなたのサイトへのリンクを使ってユーザのメールアドレスにメールを送り、URLに& hash = yourHashHereのようなものを入れることができます。あなたのサイトでは、データベースにハッシュが存在するかどうかを確認し、データベース内のユーザーを有効にします。アクティベーションリンクがすでに切れているかどうかを検証できるように、タイムスタンプを追加することもできます。

0

ユーザーのログインの詳細で保存されるユーザーのアクティベーショントークンを作成することです。また、そこにトークンを送信するユーザーの電子メールがあります。実際に 電子メールを使用すると、トークンが存在し、それがない場合は、あなたがそれをユーザにPROMTます場合は、検出しますリンクを持っているコードでは、通常の組み合わせは、電子メールやトークン

です後

http://yourpage.com/activation/token

のようなものです

はもっとここを参照してください:http://msdn.microsoft.com/en-us/library/yh26yfzy.aspx

関連する問題