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 回答