ホームページ  >  記事  >  バックエンド開発  >  「パスワードのリセット」などの「ワンタイムリンク」を生成する方法

「パスワードのリセット」などの「ワンタイムリンク」を生成する方法

WBOY
WBOYオリジナル
2016-06-13 13:21:492313ブラウズ

「パスワード リセット」のような「ワンタイム リンク」を生成する方法
RT。
一部の Web サイトがパスワードを忘れたユーザーに提供するために使用されるパスワード リセット リンクと同様です。

ユーザーの登録メールアドレスに送信されたものは1回のみ発動可能で、一度使用すると使用できなくなります。

リンクは 24 時間以内に有効であるなど、時間制限がある場合があります。

PHP を使用してこれを実装する方法を誰が知っていますか。

ありがとうございます

-----解決策-------------------------- ------
タイムライン コントロール。まず接続を作成し、作成時間を記録してから、終了時間を設定します。 24 時間以上、または 1 回クリックした後
------解決策---------
タイムスタンプなどに基づいて可逆的な暗号化文字列を生成する次に復元を実行し、時間が経過したかどうかを確認します。
------解決策---------
一度の操作を実現したい場合は、暗号化する必要があります。 接続リクエストを受信するたびに文字列が記録されます。その記録にアクセスして確認してください。
------解決策----------------------
「一回限り」? ? ?
これは非常に簡単です。テーブルをクエリしてテーブルに渡すだけです。そうでない場合は拒否されます。

テーブルには char(32) フィールドが 1 つだけあり、それをプライマリとして設定します。 key
検証が必要なコンテンツのみを保存します MD5 value
操作も非常に簡単です。 key='value' の tbl_name から削除を実行します。
mysql_affected_rows が 0 を返した場合、失敗したことを意味します

このソリューションは、検証対象のオブジェクトの MD5 を取得している限り、任意の「1 回限り」検証できます。検証オブジェクトの本当の内容を心配する必要はありません
------解決策---------
でたらめです。

強調点パスワードを設定するには、自動インクリメントされる ID を KEY、ユーザー名、検証が完了したかどうか、作成日 TIME_STAMP、および一意の識別子 md5 (データベース セキュリティの場合は MD5 値) を使用してデータベースに行を挿入します。識別子として生成され、ユーザー、 md5(id . username . time)) に送信されます。
次に、電子メールで URL: xxxx.com?id=md5 を送信します。

ユーザーがこの URL にアクセスすると、データベースから md5 を見つけてマークします。
------解決策---------
=。 = まだ時計を使っていますか? この種のデータを記録すると、DBA に問題が発生するようです...

ユーザー名 + unixtimestamp + キーを使用して、特定の数値をハッシュするだけですよね? ....

検証がタイムアウトしたら、unixtimestamp フィールドを抽出すると、時間制限を自由に設定できます...
------解決策---------
私のアイデアについて話させてください。実際、これは非常に簡単です
SESSION には有効期限があり、SESSION の有効期限が切れると、リンクは自動的に期限切れになります。
アイデア:
ユーザーの身元を確認した後。セッション ID + ユーザー名を使用して一意の識別子を生成します

PHP コード

$_SESSION['FORGET_CODE']=md5(session_id() . 'XXX'); //XXX はパスワードをリセットするためのユーザー名です。
/*生成されるリンクは以下の通り*/
$href="http://www.domain.com/forget.php?code={$_SESSION['FORGET_CODE']}";
<br><font color="#e78608">------解決策------</font><br>1. ユーザーの申請時間を記録できます。データベース <br>2 では、時間をデータとして復号化および暗号化できるアルゴリズムを使用します。 <div class="clear"></div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。