ホームページ  >  に質問  >  本文

javascript - 前後の別のページのログイン傍受に関する問題

プロジェクトはフロントとバックに分かれています。バックエンドはフロントエンドへのインターフェイスのみを提供し、各インターフェイスにはトークンがあります。現在、ログインが必要なページがいくつかあります。傍受方法フロントエンド。例: A ページ から A タグを経由して B ページ にジャンプします (B ページに入るにはログインする必要があります)。私の現在のアプローチは、ページBに入り、ajaxリクエストを送信して、バックグラウンドでステータスが返された後にログインページにジャンプすることです。 Bページに入りました。

三叔三叔2673日前1866

全員に返信(8)返信します

  • 巴扎黑

    巴扎黑2017-06-24 09:46:13

    a タグをクリックしたときに最初に ajax リクエストを送信してから、どこにジャンプするかを決定することを検討できますか?

    返事
    0
  • 滿天的星座

    滿天的星座2017-06-24 09:46:13

    Ajaxリクエストを自分でカプセル化し、ログイン状況を個別に判断し、ログインしていない場合はログインにジャンプし、ログイン後に直接データを返すことができます

    返事
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-24 09:46:13

    public jsを書いて、その中にページ読み込み関数を書いて、アクセスするためにログイン認証が必要なページを参照し、その中に論理判断を書きます

    返事
    0
  • 为情所困

    为情所困2017-06-24 09:46:13

    フロントエンドはインターセプトせず、サーバーがインターセプトします。フロントエンド インターセプトの場合、ページ B でのみ実行できます。入力する URL のスペルを考慮したことがありますか? B ページ アクセス インターフェイスは、ユーザー情報を取得しようとします。取得できれば、ログインしています。取得できなければ、ログインしていません。

    返事
    0
  • ringa_lee

    ringa_lee2017-06-24 09:46:13

    トークンには通常、有効期限があります。ページがジャンプするときに、まずトークンの有効期限が切れているかどうかを確認し、有効期限が切れていない場合は、ログインページにジャンプします。
    シングルページのアプリケーションであれば、これは簡単に解決できます。シングルページのアプリケーションでない場合は、public js に記述するだけです。

    返事
    0
  • 阿神

    阿神2017-06-24 09:46:13

    ログインしていない場合は、ログイン (または登録) するように求められます。カプセル化 ログイン後の成功したコールバックと登録成功後のコールバックを予約し、コールバック関数のページ B にジャンプします

    返事
    0
  • 迷茫

    迷茫2017-06-24 09:46:13

    この問題を解決するには 2 つの方法があります: 1. ログインする必要があるページであるため、サーバーは検証を実行します。これには必然的にユーザーの権限が含まれます。ページ B によって送信される ajax リクエストにはトークンが含まれます。バックエンドは、アクセス許可があるかどうかを判断するためにトークンの有効期限の検証を実行します。エラーが報告されたら、フロントエンドに戻り、アクセス許可なしでエラー メッセージを検証するパブリック メソッドを作成します (このメソッドは、応答インターフェイスでより安全である必要があります)
    2.フロントエンドは、保存されたユーザー情報の有効期限を判断するために各ページにウォッチドッグ JS を書き込みます。

    投稿者の要望は、クリック時にジャンプするかどうかを判定したいということだと思いますが、aタグをクリック関数に変更し、window.location.href = urlを使ってページにジャンプする関数内で判定することも可能です

    返事
    0
  • 三叔

    三叔2017-06-24 09:46:13

    lz フロントエンド フレームワークは何に使われますか?
    vue_router に実装できるフック関数があることは知っていますが、router.beforeEach でログインするかどうかを判定します。ログインしていない場合はログインします。 、次だけ()

    返事
    0
  • キャンセル返事