首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Express中保存持久数据?

如何在Express中保存持久数据?
EN

Stack Overflow用户
提问于 2019-10-24 02:08:16
回答 1查看 20关注 0票数 0

我有一个简单的需求,就是在Express中存储访问令牌/刷新令牌(不使用localStorage或其他任何东西)。我想将它们存储在一个持久的API中,这样当用户访问之前访问过的页面时,就可以看到访问令牌是否已经存在,如果已经存在,则进行httpOnly调用并登录等等。

我花了一些时间研究express-sessioncookie-session,但就是找不到正确的方法。express-session需要一个用于生产的存储区,我不想设置一个存储区来简单地存储访问令牌。所以像这样的东西在开发中是有效的:

代码语言:javascript
复制
app.use(
  session({
    secret: 'conduit',
    cookie: {
      path: '/',
      maxAge: 60 * 60 * 1000,
      httpOnly: true,
      secure: isProduction,
    },
    resave: false,
    saveUninitialized: false,
  })
)

使用此命令在请求时设置它:

代码语言:javascript
复制
request.session.accessToken = accessToken
request.session.save()

但是,如果它不能在生产环境中工作,那么它就没有帮助。我不能让它与cookie-session一起工作,或者我不知道如何设置/检索cookies,而且文档也没有太大帮助。

所以我在问:如何在Express服务器/httpOnly cookie上持久地存储一些字符串,而不使用store /Redis/MemCache/等?

EN

回答 1

Stack Overflow用户

发布于 2019-10-24 02:22:34

我不得不使用cookieParser。

代码语言:javascript
复制
const cookieParser = require('cookie-parser')

app.use(cookieParser())

// set a cookie
response.cookie('nameOfCookie', 'cookieValue', {
  maxAge: 60 * 60 * 1000, // 1 hour
  httpOnly: true,
  secure: isProduction,
})

// get a cookie
request.cookies.nameOfCookie

// destroy cookie
response.clearCookie('nameOfCookie')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58528706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档