フロントエンド分離モードでは、ユーザーのステータスをどのように追跡しますか?


前後端分離開発モードでは,フロントエンドにVueなどのMVVMフレームワークを採用し,バックエンドにRESTfulスタイルのインタフェースを提供する.従来の開発モードではセッションを用いてユーザログイン状態を追跡するのとは異なり,前後端分離モードではクッキーを読み取る方式でユーザログインを検証することができ,ユーザが任意のURLにアクセスするたびにクッキーを検証する.この方式の利点は,サーバが任意のURLを処理しても無状態であることを保証し,複数のサーバに拡張できることである.ログインに成功すると、サーバからブラウザにクッキーが生成されるので、このクッキーがクライアントに偽造されないことを保証します.偽造防止クッキーを実現する鍵はSHA 1のような一方向暗号化アルゴリズムによってある.たとえば、ユーザーが正しいパスワードを入力してログインに成功した場合、サーバはデータベースからユーザーのidを取得し、次のように文字列を計算できます.
"  id" + "    " + SHA1("  id" + "    " + "    " + "SecretKey")

ブラウザがクッキーをサーバ側に送信すると、サーバが取得できる情報には、ユーザid、期限切れ時間、SHA 1値が含まれる.期限切れになっていない場合、サーバはユーザidに基づいてユーザパスワードを検索し、SHA1(" id" + " " + " " + "SecretKey")と計算し、ブラウザクッキーのハッシュと比較し、等しい場合はユーザがログインしていることを示し、そうでない場合はクッキーは偽造である.このアルゴリズムの鍵は,SHA 1が元の文字列からSHA 1の結果を計算できる一方向アルゴリズムであるが,SHA 1の結果から元の文字列を逆押し出しすることはできないことである.