http://cctv.com/!#/car/list
のような単一ページのアプリケーション URL があります。ログインしている場合にのみこの URL にアクセスできます。ログインしていない場合は、ログイン ページにジャンプする必要があります。
以前は、バックエンドに URL をリクエストすると、バックエンドは現在のユーザーがログインしているかどうかを判断していました。しかし、現在はシングルページ アプリケーションなので、バックエンドにリクエストする必要はありません。シングルページアプリケーションの場合、ユーザーがログインしているかどうかをどのように処理すればよいでしょうか?
リーリー リーリー リーリー
url
の変更をリッスンし、ログアウトしていない場合はログイン ステータスを確認します。ログインステータスを確認する
url
变化,如果不是login logout 就检查登录状态。检查登录状态
检查js变量,没有登录就直接跳登录页
如果js变量已经登录,就判断一下是否需要异步检测 不需要检测就结束(比如上次检测是在60秒内)。
如果需要异步检测,就异步检测是否登录,如果成功 刷新一下
lastcheck
lastcheck
時間を更新します。 🎜🎜 🎜🎜ログインしていないことが検出された場合は、ログインページに直接ジャンプします🎜🎜 🎜ログイン後、バックエンド API がトークンを提供し、フロントエンドがトークンを保存し、アクセスするためにログインする必要がある場合にトークンを渡します。フロントエンド ルーティングによってトークンがあるかどうかが判断され、トークンがない場合はログインします。さらに、フロントエンドには、非同期対話型 API のエラー処理機能があります。たとえば、バックエンド エラー コードは、フロントエンドが以前のトークンをクリアしてログインに切り替えたことを示します。
現在では、フロントエンドが API を介してユーザー名とパスワードをバックエンドに送信するのが通常であり、ログイン状態を維持するかどうかについては、バックエンドが Cookie を設定し、フロントエンドは何もする必要がありません。
localStorangeを通じてログインステータスを保存しますが、セキュリティはまったくありません
ログインステータスはバックエンドによってCookieに保存されます。考える必要はありません。
背景にクッキーを設定するだけです。
バックグラウンドで Cookie を設定した後、フロントエンドがリクエストを行うとヘッダーが自動的に引き継がれます。
その後、ステータス コードに同意します。リクエストが特定のステータス コードを返すと、ログイン ページにジャンプします。
どのような状況であっても、フロントエンドはユーザーが誰であるか、ユーザーがログインしているかどうかを知りません。それで、誰が知っていますか?後部!
そのため、バックエンドが毎回提供するログインステータス情報を提供し、バックエンドにそれを検証させるだけで済みます。
1. Cookie に保存して、リクエストするたびに送信できます。もちろん、これはユーザーには透過的に行うことができ、バックエンドに Cookie を植えさせ、http のみに設定することができます。
2. 単一ページなのでメモリ内のグローバル変数に保存することもできます。そうでない場合はログインされません。
3. トークンを自分でキャッシュし、リクエストを送信するたびに手動で取得することができます。
バックエンドがどのようにサポートしているかによって異なります。トークンとクッキーの両方のメソッドが受け入れられます
loopback+vue+vue-resource、フロントエンドとバックエンドの分離テンプレート、vue ページング機能、認証権限制御、アクセストークンメカニズム、資格情報、CI、Docker
https://github.com/qxl1231/ge...
完全な解決策は私のプロジェクトの例を見てください