2

私はこの例に従いました-> https://github.com/visionmedia/express/tree/master/examples/auth

正常に動作しますが、正常にログインまたはログアウトしたときにコンテンツが表示される方法が気に入らないです。

XまたはYを一度だけユーザーに認証する他の方法はありますか?例

私はログイン用の線形フォームを持っています、それが認証されたそのdivを一度だけユーザーに隠すのはいいでしょう、しかし私はこれをすることができません

$(document).ready(function(){
  if(req.session.user) { $(.class of teh frm to hide).hide(); }
}

私もsession.userを試しました

いつも私にその未定義を教えてくれます。これをレイアウトに配置しました。

では、ユーザーが認証されている場合、またはユーザーが管理者である場合、ビューに表示するにはどうすればよいですか?

atmがいくつかのルートを承認し、特定のコンテンツを表示する唯一の方法である

req.session.success = 'Authenticated as ' + req.session.user.name
  + ' click to <a href="/logout">logout</a>. '
  + ' You may now access <a href="/restricted">/restricted</a>.';
} 

それは行く方法ではないと思います。

4

1 に答える 1

7

クライアント側のJavaScriptではなく、テンプレートエンジンを使用してさまざまなコンテンツを表示することをお勧めします。翡翠を使用している場合は、次のようにします。

app.jsで、ユーザーがログインしている場合にすべてのビューに渡される変数を作成します。

app.use(function(req, res, next){
  // all the stuff from the example
  if (req.session.user) {
    res.locals.user = req.session.user
  }
  next();
});

テンプレートエンジン(たとえば、jade)でこの変数を使用します。

if user
  // show stuff here
else
  // for everyone else
于 2012-09-17T17:45:23.073 に答える