2017-02-26 2 views
0

私のサーバーでは、express-sessionを作成しました。私はユーザーがログインしているかどうかをチェックするためにこれを保存します。私はコードの非サーバー側でこのexpress-sessionにアクセスする方法を知らない。JavascriptクライアントでExpress-Sessionを参照する方法

ユーザーがログインしている場合は、ユーザーが表示するページを編集します。私は、ユーザーがログインしているかどうか、私は急行セッションにアクセスする必要がある場合は、ページを編集することを知っているだけです。

答えて

0

クライアント側(ブラウザなど)でExpressセッションデータにアクセスすることはできません。 これはサーバー側でのみアクセスできます。

注セッションデータはクッキー自体に保存されず、セッションIDだけに保存​​されます。セッションデータはサーバー側に格納されます。

ユーザーステータスに関する情報を取得するためにセッションをチェックするエンドポイントを追加する必要があります。

0

クライアントからセッションデータに直接アクセスすることはできません。サーバー側のみに格納されます。セッションクッキーにはセッションIDのみが含まれ、実際のセッション状態はありません。

状態でログインへのアクセスを得るために、あなたはカップルのオプションがあります。

  1. ページをレンダリングするときは、その状態でログインを持っており、おそらくページではJavaScript変数を挿入ログインしているユーザーのユーザーID。クライアント側のJSは、変数をチェックして状態を知ることができます。これは、ページをレンダリングするための任意の種類のテンプレートエンジンを使用している場合は簡単です。また、ページ内のタグなど、いくつかの上位タグにloggedInクラス名を設定するのも一般的です。これにより、ユーザーがログインしているかどうかに基づいてCSSを自動的に調整することができます(ログインボタンを非表示にするなど)。

  2. セッションクッキーの存在を確認できます。セッションクッキーが存在しない場合、ユーザーはログインできません。セッションクッキーが存在するということは、必ずしもユーザーがログインしているとは限りません。これは古いクッキーでも、別のクッキーでもかまいませんユーザー。しかし、クッキーが存在しないということは、ユーザーがログインしていないことを意味します。

  3. サーバーに照会して照会することができます。求めているユーザーIDを指定する必要があります。サーバーは、現在のセッションCookieが有効で、その特定のユーザーに属しているかどうかを確認できます。

個人的には、私はおそらくオプション#1のバリエーションをいくつか行います。

+0

@MoStack - これがあなたの質問に答えた場合は、答えの左側にある緑色のチェックマークをクリックすることで、コミュニティにそれを示すことができます。スタックオーバーフロー時の適切な手順に従うことで、あなたの評判のポイントも得られます。あなたの質問がまだ答えられていない場合は、理解の助けが必要なものについてコメントを追加してください。 – jfriend00

関連する問題