2017-08-23 16 views
1

環境 - node.js、express、ejsの下でログインステータスを確認するルーチンを作る必要があります。ブラウザ側ではなく、サーバー側のejsページからCookieにアクセスできますか?

ブラウザ側ではなく、サーバー側のすべてのejsビューページでログインステータスを確認する必要があると思います。

これを行うには、 というCookieを見つけて見つけ出すejsページにコードを書く必要があると思います。このCookieは、ユーザーが正しくログインしていることを証明します。

ejsページからブラウザのCookieにアクセスできますか?

もしそうなら、あなたはejsページからクッキーにアクセスする方法を教えてくれますか?

ejsのcookie-parserモジュールを使用できますか?

ejsページのサーバー側からクッキーにアクセスする方法がない場合は、ブラウザ側でcookieにアクセスする必要があると思います。これはログインを処理する通常の方法ですか?

答えて

0

これで、ユーザーのセッションをトラッキングします。これを達成するには、以下を実行することができます。

ユーザーが正しい資格情報で正常にログインしたら、そのユーザーの詳細をセッションに追加します。

if(loginSuccess){ 
    req.session.user = userObject; 
} 

セッションからユーザーを読んで、あなたはEJSファイルにユーザーオブジェクトにアクセスできるようにres.localsにそれを置くためにミドルウェアを追加します。

app.use(function(req, res, next) { 
    res.locals.user = req.session.user; 
    next(); 
}); 

これで、ejsファイルでuserObjectを利用できるようになりましたので、論理をejsファイルに書き込んでください。あなたがログインしていないときにログインを表示したいとき、ログインしたときにログアウトすると、以下のようなコードを追加できます。

<% if(user && user.email){ %> 
    <a href="/logout">Logout</a> 
<% } else { %> 
    <a href="/login">Login</a> 
<% } %> 
関連する問題