5

クライアント側でログイン ステータスを確認するためのベスト プラクティスは何かを知りたいです。私がやろうとしているのは、ユーザーのログイン ステータスを確認することです。JavaScript を使用して、開いているポップアップ ボックス (ログイン ボックス) にログインしていないかどうかを確認します。

2つのオプションを考えることができます

  1. サーバーへの AJAX 呼び出しを行い、ログイン ステータスを取得します。
  2. HTML ページに変数を用意し、クライアント側で JavaScript を使用してこの変数をチェックします。もちろん、私はこのチェックを信用していません。サーバー側のコントローラーに必要なすべてのチェックがまだ残っています。

オプション 1 は適切ですが、遅延が発生する可能性があるため、ユーザー エクスペリエンスの点で最適なオプションではない可能性があります。それとも私が間違っているのでしょうか、良いサーバー (私は Amazon Web サービスを使用する予定です) を使用すると、この遅延は最小限に抑えられ、ユーザーはそれを理解できません (質問はばかげているように見えるかもしれませんが、これは私の最初の Web 開発なので、理解してください :))

オプション 2 に問題はありません。間違っている場合は修正してください。私が言ったように、私はベストプラクティスを理解しようとしています。

4

2 に答える 2

1

サーバーのヒット/ネットワークの遅延も回避するための最良の方法。ログインステータスを持つクライアント変数を配置できますが(質問で述べたように)、サーバーのヒットとネットワーク遅延(AJAX)を回避するための主なことは、サーバー側にあるのと同じロジックを使用してログインステータスを設定するだけです偽として。ロジックが、非アクティブ状態が 5 分間続いた後にログイン ステータスを false に設定することであるとします。クライアント側でも同じことができます。

つまり、全体として、クライアント エンドで同じロジックを実装して、ログイン ステータスを false に設定します。それに基づいて、ログインダイアログを遅延なくすぐに表示できます。そして、ベスト プラクティスでは、クライアントのログイン ステータスが改ざんされる可能性があるため、常に二重検証を行う必要があります。つまり、認証されたものに対するすべてのリクエストのサーバー側で、クライアントのログイン ステータスがサーバーのログイン ステータスと一致することを確認する必要があります。

幸運を祈ります...
楽しい探検を:-)

于 2013-05-02T07:34:51.200 に答える
0

オプション 1 が最善のようです。ユーザー ID を保存した Cookie が強化されていないかどうかを、別の方法で知るにはどうすればよいでしょうか? 私の知る限り、ベスト プラクティスは、Cookie にハッシュを追加し (Google が Cookie でそれを行っているのを見ることができます)、それを使用して、シークレットを使用して、Cookie のデータがサーバー側で有効かどうかを確認することです。およびまたは塩。

http://en.wikipedia.org/wiki/Hash_function

http://en.wikipedia.org/wiki/Salt_(暗号化)

とにかくできることは、クライアント側のJavaScriptにユーザーIDを持つCookieが存在するかどうかを確認し、存在しない場合はユーザーをログインページに送信することです。

https://developer.mozilla.org/en-US/docs/DOM/document.cookie

そうすれば、明らかにログアウトしているユーザーのためにサーバーを往復する必要がなくなります。

ただし、ユーザーがサーバーに行う最初のリクエストで、すでにチェックを行うことはできませんか? ユーザーがログインしていない場合は、ログインページで応答しますか?

于 2013-05-02T07:31:38.857 に答える