gpt4 book ai didi

javascript - NodeJS 验证后如何使用 AngularJS 访问用户信息?

转载 作者:行者123 更新时间:2023-12-03 07:28:46 25 4
gpt4 key购买 nike

我看到了一些与此相关的问题,但作为 Angular 和 Node 的新手,我正在努力寻找合适的解决方案。

我有这个代码,它适用于登录,我只能在经过身份验证后访问我的页面:

router.post('/login',
passport.authenticate('local',
{
successRedirect: '/',
failureRedirect: '/login',
failureFlash: false,
successFlash: false
}
));

router.all('*', ensureAuthenticated);

function ensureAuthenticated(req, res, next) {
console.log("in ensureAuth", req.isAuthenticated());
console.log("session data", req.session);
console.log("user data", req.user);
if (req.isAuthenticated())
{
return next();
}
res.redirect('/login');
}

我的本​​地 Passport 身份验证在验证用户是否存在并允许登录后返回一个对象,如下所示:

return passportDone(null, result.rows[0]);

其中 result.rows[0] 是我想要的用户信息。

我在前端有一个简单的 ng-submit,其形式调用“登录(凭据)”,凭据由 ng-model 在各自的字段(用户名和密码)中设置。

我的问题是如何返回我想要的所有信息,例如 user_role、名称和内容,以便我可以在前端将其呈现为 {{user.name}}?

刷新后信息需要保留,因此从我读到的内容来看,$scope 不是一个选项。

最佳答案

您可能想要在这里做的是创建一个自定义路由来获取此信息。例如:“/我”。

在此 route ,您可以提供您现在可能存储在 session 变量中的信息。

另一个解决方案是注入(inject)用户信息,具体取决于您的应用程序如何处理身份验证(例如,如果您登录并重定向到新页面,您可以将用户信息作为 js 变量注入(inject)到新页面中)或者,如果您发送 ajax 请求进行登录并且服务器没有重定向到新页面,则在响应中返回用户信息。

关于javascript - NodeJS 验证后如何使用 AngularJS 访问用户信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35892651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com