首页 > 解决方案 > 使用 express-mysql-session 进行验证

问题描述

由于我是节点编程的新手,我已经开始制作一个虚拟网站,我想使用现有的库 express-mysql-session 实现会话管理。

我浏览了这个包的文档。我已按照给定的步骤在表中创建会话变量/数据条目。我什至能够将数据输入到表格中。尽管我对实际验证应该做什么感到非常困惑。我正在存储从其他“用户”表导入的用户电子邮件和 ID 以进行登录身份验证,这些信息存储在会话表的数据列中。 会话表

与文档中一样,它仅显示了如何将会话变量存储到数据库中,而不是验证步骤。我完全困惑的是要准确用于身份验证/会话的参数。是要用于它的 session_id 列值吗?如果是,我是否将此值存储在全局变量中并每次从表中访问它?

我一直无法使用这个包找到任何相同的例子,所以我没有下一步的任何上下文。如果有人甚至有一个解释这个包的例子,请你能和我分享它的来源吗?

标签: mysqlnode.jsexpressexpress-session

解决方案


该库基于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!')
  }
})

推荐阅读