情報とサンプルを 2 日間読んでいますpassport.js
が、その後、認証のすべてのプロセスを行ったかどうかはわかりません。
ログインしているかどうかを確認するにはどうすればよいですか。たとえば、ログイン ボタンまたはログアウト ボタンのあるナビゲーション バーが表示されます。以下のコードのような変数はありますか?
if (login)
<button>logout</button>
else
<button>login</button>
情報とサンプルを 2 日間読んでいますpassport.js
が、その後、認証のすべてのプロセスを行ったかどうかはわかりません。
ログインしているかどうかを確認するにはどうすればよいですか。たとえば、ログイン ボタンまたはログアウト ボタンのあるナビゲーション バーが表示されます。以下のコードのような変数はありますか?
if (login)
<button>logout</button>
else
<button>login</button>
ユーザーがログインしている場合、はすべてのリクエストに対して にオブジェクトpassport.js
を作成します。このオブジェクトは、任意のミドルウェアに存在するかどうかを確認できます。user
req
express.js
if (req.user) {
// logged in
} else {
// not logged in
}
そのための単純なexpress.js
ミドルウェアを作成できます。これは、ユーザーがログインしているかどうかを確認し、ログインしていない場合はページにリダイレクトし/login
ます。
function loggedIn(req, res, next) {
if (req.user) {
next();
} else {
res.redirect('/login');
}
}
そしてそれを使用します:
app.get('/orders', loggedIn, function(req, res, next) {
// req.user - will exist
// load user orders and render them
});
コードサンプルが次のようなミドルウェアを作成できることを示しているように、テンプレートで使用したい場合:
app.use(function (req, res, next) {
res.locals.login = req.isAuthenticated();
next();
});
パスポートをセットアップした後、そのコードをどこかに配置します。
そして、それをテンプレートで使用します(swigの例)
{% if login %}
<button>logout</button>
{% else %}
<button>login</button>
{% endif %}