我需要在环境下检查登录状态的例程 - node.js,express,ejs。
我想我需要在服务器端的所有ejs视图页面中检查登录状态,而不是在浏览器端。
要做到这一点,我想我需要在ejs页面中编写代码来查找和查看 一个cookie - 这个cookie证明用户已正确登录。
我可以从ejs页面访问浏览器cookie吗?
如果是这样,你能指导我如何从ejs页面访问cookie吗?
我可以使用ejs的cookie-parser模块吗?
如果在ejs页面中无法从服务器端访问cookie,我相信我只需要在浏览器端访问cookie。这是处理登录的常用方法吗?
答案 0 :(得分:1)
所以你想跟踪用户的会话。您可以执行以下操作来实现此目的。
当用户使用正确的凭据成功登录后,将该用户详细信息添加到会话中。
<div id="map"></div>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDztlrk_3CnzGHo7CFvLFqE_2bUKEq1JEU&callback=initMap"
async defer></script>
添加中间件以从会话中读取用户并将其放入res.locals,以便您可以访问ejs文件中的userObject。
if(loginSuccess){
req.session.user = userObject;
}
现在您将在ejs文件中使用userObject,因此请在ejs文件中相应地编写逻辑。假设您希望在用户未登录时显示登录信息并在登录时注销,则可以添加如下代码
app.use(function(req, res, next) {
res.locals.user = req.session.user;
next();
});
答案 1 :(得分:1)
可以在 $formatter->addJsonEncodeOption($option);
中找到浏览器 Cookie 值。
例如:
在控制台打印cookie:
req.headers.cookie