プロジェクトはフロントとバックに分かれています。バックエンドはフロントエンドへのインターフェイスのみを提供し、各インターフェイスにはトークンがあります。現在、ログインが必要なページがいくつかあります。傍受方法フロントエンド
。例: A ページ
から A タグを経由して B ページ
にジャンプします (B ページに入るにはログインする必要があります)。私の現在のアプローチは、ページBに入り、ajaxリクエストを送信して、バックグラウンドでステータスが返された後にログインページにジャンプすることです。 Bページに入りました。
a タグをクリックしたときに最初に ajax リクエストを送信してから、どこにジャンプするかを決定することを検討できますか?
Ajaxリクエストを自分でカプセル化し、ログイン状況を個別に判断し、ログインしていない場合はログインにジャンプし、ログイン後に直接データを返すことができます
public jsを書いて、その中にページ読み込み関数を書いて、アクセスするためにログイン認証が必要なページを参照し、その中に論理判断を書きます
フロントエンドはインターセプトせず、サーバーがインターセプトします。フロントエンド インターセプトの場合、ページ B でのみ実行できます。入力する URL のスペルを考慮したことがありますか? B ページ アクセス インターフェイスは、ユーザー情報を取得しようとします。取得できれば、ログインしています。取得できなければ、ログインしていません。
トークンには通常、有効期限があります。ページがジャンプするときに、まずトークンの有効期限が切れているかどうかを確認し、有効期限が切れていない場合は、ログインページにジャンプします。
シングルページのアプリケーションであれば、これは簡単に解決できます。シングルページのアプリケーションでない場合は、public js に記述するだけです。
ログインしていない場合は、ログイン (または登録) するように求められます。カプセル化 ログイン後の成功したコールバックと登録成功後のコールバックを予約し、コールバック関数のページ B にジャンプします
この問題を解決するには 2 つの方法があります: 1. ログインする必要があるページであるため、サーバーは検証を実行します。これには必然的にユーザーの権限が含まれます。ページ B によって送信される ajax リクエストにはトークンが含まれます。バックエンドは、アクセス許可があるかどうかを判断するためにトークンの有効期限の検証を実行します。エラーが報告されたら、フロントエンドに戻り、アクセス許可なしでエラー メッセージを検証するパブリック メソッドを作成します (このメソッドは、応答インターフェイスでより安全である必要があります)
投稿者の要望は、クリック時にジャンプするかどうかを判定したいということだと思いますが、aタグをクリック関数に変更し、window.location.href = urlを使ってページにジャンプする関数内で判定することも可能です2.フロントエンドは、保存されたユーザー情報の有効期限を判断するために各ページにウォッチドッグ JS を書き込みます。
lz フロントエンド フレームワークは何に使われますか?
vue_router に実装できるフック関数があることは知っていますが、router.beforeEach でログインするかどうかを判定します。ログインしていない場合はログインします。 、次だけ()