我该怎么办,如果用户登录,他只能更改他的个人资料nodejs/mongodb/mongoose/pug



所以基本上我有一个动态路由,路由到DB中的每个用户用户名

router.get('/:username', function (req, res) {
User.findOne({username:decodeURI(req.params.username)}, function (err, user) {
if (err) throw err;
if (user == null) {
}else if(user !== null){
res.render('user-profile', {
user:user
});
}
});
});

我想检查例如:如果登录的用户是"alpha",并且他在此 URL 上看到他的个人资料:http://localhost:8080/users/alpha,然后向他显示私人信息,以便只有他可以看到它。 如果"测试版"想查看"阿尔法"个人资料,他看不到阿尔法的任何私人信息

我正在使用护照,护照本地和快速会话

它并不像你想象的那么复杂。所以,让我们讨论场景有两个用户 A 和 B .我们在这里要实现的是url/users/:username 仅显示用户的公共信息,如果用户名与登录用户的用户名相同,在这种情况下,它还会显示登录用户的私人信息

一种非常简单的方法是列出所有信息(公共和私有(,但仅在/users/:username 的 id 或用户名与登录用户相同时在个人资料页面上显示私人信息。(可以通过任何模板引擎轻松实现(

如果您使用的是护照,则登录的用户信息将附加到Req对象,您可以使用该对象来简单地检查是否需要显示信息。

最新更新