mysql - 使用 express-mysql-session 进行验证
问题描述
由于我是节点编程的新手,我已经开始制作一个虚拟网站,我想使用现有的库 express-mysql-session 实现会话管理。
我浏览了这个包的文档。我已按照给定的步骤在表中创建会话变量/数据条目。我什至能够将数据输入到表格中。尽管我对实际验证应该做什么感到非常困惑。我正在存储从其他“用户”表导入的用户电子邮件和 ID 以进行登录身份验证,这些信息存储在会话表的数据列中。 会话表。
与文档中一样,它仅显示了如何将会话变量存储到数据库中,而不是验证步骤。我完全困惑的是要准确用于身份验证/会话的参数。是要用于它的 session_id 列值吗?如果是,我是否将此值存储在全局变量中并每次从表中访问它?
我一直无法使用这个包找到任何相同的例子,所以我没有下一步的任何上下文。如果有人甚至有一个解释这个包的例子,请你能和我分享它的来源吗?
解决方案
该库基于express-session,可用于管理会话。express-session 库将数据保存在服务器端(内存)中,而 express-mysql-session 提供了一种将会话数据保存到 MySql 表的方法。
您应该首先尝试使用 express-session 库,然后使用相关库将其连接到 mysql。
使用 express-session 库非常简单。
要存储或访问会话数据,只需使用请求属性 req.session,它(通常)由存储序列化为 JSON,因此嵌套对象通常很好。例如下面是一个用户特定的视图计数器:
// Use the session middleware
app.use(session({ secret: 'keyboard cat', cookie: { maxAge: 60000 }}))
// Access the session as req.session
app.get('/', function(req, res, next) {
if (req.session.views) {
req.session.views++
res.setHeader('Content-Type', 'text/html')
res.write('<p>views: ' + req.session.views + '</p>')
res.write('<p>expires in: ' + (req.session.cookie.maxAge / 1000) + 's</p>')
res.end()
} else {
req.session.views = 1
res.end('welcome to the session demo. refresh!')
}
})
推荐阅读
- html - 如何设置单个表格单元格填充?
- r - R在for循环中编写提示以返回并更改变量或继续
- kotlin - 为什么我无法访问此功能?
- css - 当我单击链接时,如何使 Wordpress 上的此菜单消失?
- mysql - 检索和插入日期时间时,MYSQL 的默认行为是什么?遇到一个有趣的时区偏移问题
- python - 如何在不调用的情况下将值传递给 python 函数?
- ngx-bootstrap - 如何避免 ngx bootstrap bsDatepicker 默认验证在 Angular 应用程序中显示“无效日期”消息
- amazon-web-services - AWS S3 上可用的 Wikipedia Dump
- angular - 我怎样才能使我的第二个块在链触发器中?
- javascript - 增加延迟加载检测的视口