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

angular.js - 前后端分离的单页应用如何来判断当前用户的登录状态?

有个单页应用的url例如http://cctv.com/!#/car/list,只有在登录的情况下,我才可以去访问这个url,如果不是登录状态,则要跳到登录页面。

以前的话,请求url到后台,后台会判断下当前用户是否登录,但是现在做成单页应用了,也不需要请求到后台了,那么在单页应用的情况下如何来处理用户是否已经登录了的状态呢?

给我你的怀抱给我你的怀抱2713日前935

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

  • 给我你的怀抱

    给我你的怀抱2017-05-15 17:11:32

    リーリー リーリー リーリー

    url の変更をリッスンし、ログアウトしていない場合はログイン ステータスを確認します。
    ログインステータスを確認するurl 变化,如果不是login logout 就检查登录状态。
    检查登录状态

    1. 检查js变量,没有登录就直接跳登录页

    2. 如果js变量已经登录,就判断一下是否需要异步检测 不需要检测就结束(比如上次检测是在60秒内)。

    3. 如果需要异步检测,就异步检测是否登录,如果成功 刷新一下lastcheck <オル>

    4. js変数を確認し、ログインせずにログインページに直接ジャンプします
    5. js 変数がログインしている場合は、非同期検出が必要かどうかを判断し、検出が必要ない場合は終了します (たとえば、最後の検出は 60 秒以内でした)。
    🎜 🎜🎜非同期検出が必要な場合は、非同期ログインするかどうかを確認し、成功した場合は lastcheck 時間を更新します。 🎜🎜 🎜🎜ログインしていないことが検出された場合は、ログインページに直接ジャンプします🎜🎜 🎜

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-15 17:11:32

    ログイン後、バックエンド API がトークンを提供し、フロントエンドがトークンを保存し、アクセスするためにログインする必要がある場合にトークンを渡します。フロントエンド ルーティングによってトークンがあるかどうかが判断され、トークンがない場合はログインします。さらに、フロントエンドには、非同期対話型 API のエラー処理機能があります。たとえば、バックエンド エラー コードは、フロントエンドが以前のトークンをクリアしてログインに切り替えたことを示します。

    返事
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-15 17:11:32

    現在では、フロントエンドが API を介してユーザー名とパスワードをバックエンドに送信するのが通常であり、ログイン状態を維持するかどうかについては、バックエンドが Cookie を設定し、フロントエンドは何もする必要がありません。

    返事
    0
  • 天蓬老师

    天蓬老师2017-05-15 17:11:32

    localStorangeを通じてログインステータスを保存しますが、セキュリティはまったくありません

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-15 17:11:32

    ログインステータスはバックエンドによってCookieに保存されます。考える必要はありません。

    返事
    0
  • PHP中文网

    PHP中文网2017-05-15 17:11:32

    背景にクッキーを設定するだけです。

    バックグラウンドで Cookie を設定した後、フロントエンドがリクエストを行うとヘッダーが自動的に引き継がれます。

    その後、ステータス コードに同意します。リクエストが特定のステータス コードを返すと、ログイン ページにジャンプします。

    返事
    0
  • phpcn_u1582

    phpcn_u15822017-05-15 17:11:32

    どのような状況であっても、フロントエンドはユーザーが誰であるか、ユーザーがログインしているかどうかを知りません。それで、誰が知っていますか?後部!

    そのため、バックエンドが毎回提供するログインステータス情報を提供し、バックエンドにそれを検証させるだけで済みます。

    1. Cookie に保存して、リクエストするたびに送信できます。もちろん、これはユーザーには透過的に行うことができ、バックエンドに Cookie を植えさせ、http のみに設定することができます。

    2. 単一ページなのでメモリ内のグローバル変数に保存することもできます。そうでない場合はログインされません。

    3. トークンを自分でキャッシュし、リクエストを送信するたびに手動で取得することができます。

    返事
    0
  • 某草草

    某草草2017-05-15 17:11:32

    バックエンドがどのようにサポートしているかによって異なります。トークンとクッキーの両方のメソッドが受け入れられます

    返事
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-15 17:11:32

    loopback+vue+vue-resource、フロントエンドとバックエンドの分離テンプレート、vue ページング機能、認証権限制御、アクセストークンメカニズム、資格情報、CI、Docker

    https://github.com/qxl1231/ge...

    完全な解決策は私のプロジェクトの例を見てください

    返事
    0
  • キャンセル返事