2017-08-27 10 views
1

私はエクスプレスセッションとマングースで働いています。私のユーザスキーマでは、ランクキーの値ペアがあります。ランクは 'admin'/'mod'/'user'です。ランクがユーザーか管理者かどうかはどのように判断できますか? - エクスプレスとセッション

どうすればよいですか?私のセッションは次のようになります:

app.use(session({ 
secret: process.env.SESSION_SECRET || 'as54v88vrh7e5a9', 
store: new MongoStore({ 
    mongooseConnection: mongoose.mongoose.connections[0], 
    ttl: (1*60*60) 
}), 
cookie: { 
    path: '/', 
    maxAge: 3600000 //60 min 
}, 
secure: true, 
httpOnly: true, 
resave: false, 
saveUninitialized: true, 
name: "ID" 
})); 

私はすべてのreqでセッションに 'user'でアクセスできます。 user = trueの場合、ログインしたユーザーとのセッションが確立されます。私はIF条件を使用することを考えていたが、ハンドルバーで2つの引数を比較することはできません。

すべては、どのユーザーがf.e管理者パネルや他のものにアクセスできるかを決定するようになります。

答えて

0

誰も答えなかったので、私は自分自身で答えを出さなければなりませんでした。

このようにすることはできますか?これは安全ですか?

function requireAdmin(req, res, next) { 
    if (!req.user) { 
     res.json({ 
      "Error": "You need to log in." 
     }) 
    } else { 
     if (req.user.rank !== 'admin') { 
      res.json({ 
       "Error": "You don't have access." 
      }) 
     } else { 
      next(); 
     } 
    } 
} 
関連する問題