キューが非同期で実行される場合、SESSION は使用できませんが、ログイン時にキューを使用することはできますか? 使用できる場合、Cookie とセッションの対応関係はどのようにすればよいですか?
走同样的路,发现不同的人生
録画中にキューを使用できますか?
通常、ログインは同期プロセスです。キューを使用することは不可能ではありませんが、複雑さが増します。
同期ログイン プロセスでは、データベースを読み取り、正しいアカウントとパスワードを決定し、セッションをセットアップします。これは 1 つの HTTP リクエストで完了できます。
非同期に変更するには以下の方法しか思いつきません:
クライアントはランダムトークンを生成します
クライアントはトークン、アカウント番号、パスワードをサーバーに送信します
サーバーはこのトークンを Redis に記録しますが、正常にログインしていません
サーバーはトークン、アカウント、パスワードを処理のためにキューに入れます
キュー処理。アカウントが正しい場合、redis 内のトークンは成功としてマークされ、そうでない場合は失敗としてマークされます
サーバーとキューの処理中に、クライアントは別のインターフェイスを使用して、トークンのログインが成功したかどうかをポーリングし続けます。成功した場合は、後続のすべてのリクエストでトークンが取得されます。成功しない場合、クライアントのログインは失敗します。
そのため、同期ログインプロセスはできるだけ早く完了する必要があり、ログイン後に必要な一部の操作 (電子メール通知の送信など) は、ログインプロセス全体ではなくキューに入れる必要があります。
通常、ログインは同期プロセスです。キューを使用することは不可能ではありませんが、複雑さが増します。
同期ログイン プロセスでは、データベースを読み取り、正しいアカウントとパスワードを決定し、セッションをセットアップします。これは 1 つの HTTP リクエストで完了できます。
非同期に変更するには以下の方法しか思いつきません:
クライアントはランダムトークンを生成します
クライアントはトークン、アカウント番号、パスワードをサーバーに送信します
サーバーはこのトークンを Redis に記録しますが、正常にログインしていません
サーバーはトークン、アカウント、パスワードを処理のためにキューに入れます
キュー処理。アカウントが正しい場合、redis 内のトークンは成功としてマークされ、そうでない場合は失敗としてマークされます
サーバーとキューの処理中に、クライアントは別のインターフェイスを使用して、トークンのログインが成功したかどうかをポーリングし続けます。成功した場合は、後続のすべてのリクエストでトークンが取得されます。成功しない場合、クライアントのログインは失敗します。
そのため、同期ログインプロセスはできるだけ早く完了する必要があり、ログイン後に必要な一部の操作 (電子メール通知の送信など) は、ログインプロセス全体ではなくキューに入れる必要があります。