我有一个简单的应用程序,它将登录用户并根据他的角色让他使用特定的API(分别说是normal / admin..view / update)。我正在使用MYSQL来验证用户和连接池以管理与应用程序的许多连接。
这就是我管理会话的方式,
app.post('/login',function(req,res){
Authenticate(req.body.username,req.body.password,function(err,fname,user){
if(!err) {
req.session.name=user;
res.send("Welcome " + fname);
}
else{
res.send("There seems to be an issue with the username/password combination that you entered");
}
});
});
登录时
app.post('/updateInfo',function(req,res){
if(req.session.name){
// My logic - i ll return the role by searching in db using this req.session.name, if admin will allow him.
}
});
每当我想访问任何特定的API时,我都会检查这个会话名称。
if(req.session.name == req.body.username)
{
req.session.destroy();
}
我将在注销时销毁会话。
我有两个问题,因为我不了解节点js中会话的机制。
假设我想避免多重 对于同一个用户的连接(用户使用不同的浏览器/移动设备登录),我可以添加这段代码吗?
<asp:TemplateField HeaderText="ReadStatus" Visible="false">
<ItemTemplate>
<asp:Label ID="readStatus" runat="server"></asp:Label>
<asp:HiddenField ID="readStatusHiddenField" runat="server" Value='<%#Eval("ReadStatus") %>'/>
</ItemTemplate>
</asp:TemplateField>
然后继续进行身份验证?这有什么缺点?为什么它会起作用?
我真的很想让这个无状态(不想在db中保持状态/会话),因为我想要表现。我可以做一些无状态的事情,即使有100个并发用户也能工作吗?