5

シングル ページ アプリケーションを作成しています。ログイン ページを同じページに配置しないでください。別の HTML ページとしてログインする必要がありますか、それとも同じページでもログインできますか。

別のページとしてログインしている場合、ロードした最初のページによっては、クライアント側で他のページにリダイレクトする必要があります。

つまり、最初に SPA をロードし、ユーザーがログインしていない場合は、クライアント側のログイン ページにリダイレクトする必要があるとします。最初にログインページをロードし、ユーザーがすでにログインしていると仮定すると、クライアント側でSPAにリダイレクトする必要があります。

この問題の一般的な解決策は何ですか?

4

1 に答える 1

3

ログインと確認を別のページに配置してから、ajaxを使用して電話をかけます。

  1. ユーザーアクセスインデックスファイル。
  2. インデックスファイルは、サーバー側のページをチェックして、ユーザーがログインしているかどうかを確認します。
  3. ページには、サーバー側ページからのjsonの回答がtrueかfalseかに応じてコンテンツが表示されます。

次に、ログインについても同じことを行います。

  1. ユーザーがログイン情報を提供する
  2. ajaxとjsonを介してサーバー側のファイルをチェックします。
  3. 成功した場合はページが更新され、成功しなかった場合はエラー応答がスローされます。

私の答えの要点は、シングルページアプリケーションを作成するときは、ajaxが最適な方法であるということです。ただし、使用している言語を提供していないため、より詳細な回答を提供することはできません。

ただし、ログインとコンテンツの選択を処理するクライアント側の単一ページは非常に悪い習慣であり、セキュリティが不足しているため(これを十分に強調することはできません)、すべての要素が匿名アクセスでも利用可能であり、DOM操作によって許可されていないユーザーが制限されたコンテンツにアクセスする。バックエンドのサーバーサイド認証を行うには、ajaxを使用する必要があります。前述のように、認証ステータスに応じて異なるコンテンツを表示するSPAのサーバーサイドコードも同様です。

説明するシナリオには、表示するコンテンツを選択するためのサーバー側コードと、SPAに機能を実装するためのajaxとともにクライアント側コードが必要です。

ただし、できることは、たとえばログインボタンを押すときにajaxを使用して別のファイルを呼び出すときに、ラッパーdivのコンテンツを削除し、そのdivにajax応答を追加することです。そうすれば、クライアント側のリダイレクトをすべて一緒に回避できます。

于 2012-08-13T08:54:23.513 に答える