ホームページ >バックエンド開発 >PHPチュートリアル >バックエンド検証コードの値をフロントエンドと照合するにはどうすればよいですか?

バックエンド検証コードの値をフロントエンドと照合するにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-08-04 09:20:281512ブラウズ

フロントエンドユーザーは登録時に認証コード画像の値を入力し、バックエンドと照合します。

しかし、ユーザーが登録していないため、IDをバインドすることができないため、私の一時的なデザインは次のようになります:

検証コードのイメージを生成するときに、キャッシュ (redis) に検証コードの値を保存します。その後、フロントエンドが検証コードを送信するときに、キャッシュから値を読み取り、存在するかどうかを確認します。一致するものがあれば、記事キャッシュを正常に削除します。

このような問題は、入力を間違えてもマッチングに成功する可能性はありますが、確率が特に高いわけではありません。

もっと良いアイデアはありますか?

返信内容:

フロントエンドユーザーは登録時に認証コード画像の値を入力し、バックエンドと照合します。

しかし、ユーザーが登録していないため、IDをバインドすることができないため、私の一時的なデザインは次のようになります:

検証コードのイメージを生成するときに、キャッシュ (redis) に検証コードの値を保存します。その後、フロントエンドが検証コードを送信するときに、キャッシュから値を読み取り、存在するかどうかを確認します。一致するものがあれば、記事キャッシュを正常に削除します。

このような問題は、入力を間違えてもマッチングに成功する可能性はありますが、確率が特に高いわけではありません。

もっと良いアイデアはありますか?

フロントエンドとバックエンドが分離されていない場合、検証コードをセッションに保存して検証することができます。
フロントエンドとバックエンドが分離されている場合、フロントエンドからのすべてのリクエストはステートレスになります。その後、フロントエンドが最初のリクエストを行うたびに、フロントエンドにトークンを割り当てる必要があります。 -end がリクエストを行うと、このトークンが一緒に送信されます。このトークンを Redis のキー値として使用し、対応する値の位置に検証コードを置くことができます。

1 つのセッションと 1 つの確認コード。登録していなくてもセッションは残っています

うまくコントロールできていれば、間違ってもマッチングが成功する可能性はありません。
1. バックグラウンドで検証コードを生成します。そしてそれをセッションに入れます。
2. フロントデスクが取得した認証コードも、セッションに配置されたばかりの認証コードと同期されます。
3. フロントデスクの入力が間違っている場合、またはユーザーが確認コードをクリックして切り替えた場合。次に、バックグラウンドで確認コードを変更し、セッション内の確認コードも変更します

実際には、フロントデスクに表示される認証コードが常にセッションと同期している限り、問題はありません。

追記: 各リクエストがマルチスレッドの場合、入力が間違っていても一致する可能性はありません。

ユーザー登録時に認証コードが生成されると、認証コードがセッションに書き込まれた後、セッションから認証コードが読み取られて比較されます。 .51cto.com/art/ 201402/428721.htm

フロントエンド:

<img src="checkcode.php" id="code" onclick="JavaScript:this.src='checkcode.php?tm='+Math.random()" />バックエンド:
リーリー

検証コードの生成:


バックエンド検証コードの値をフロントエンドと照合するにはどうすればよいですか?

セッション: コンピューター、特にネットワーク アプリケーションでは、「セッション制御」と呼ばれます。登録ユーザーであるかどうかに関係なく、アクセスしていれば、サーバーは固有のセッション ID を生成します。確認コードのデータをセッションに保存するだけです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。