フロントエンドユーザーは登録時に認証コード画像の値を入力し、バックエンドと照合します。
しかし、ユーザーが登録していないため、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 を生成します。確認コードのデータをセッションに保存するだけです。