Как сохранить постоянные данные в Express? - PullRequest
0 голосов
/ 23 октября 2019

У меня есть простое требование для хранения токена доступа / токена обновления в Express (без использования localStorage или чего-либо еще). Я хотел бы сохранить их в постоянном httpOnly файле cookie, чтобы каждый раз, когда пользователь посещал страницу, ранее посетившую страницу, он мог видеть, есть ли уже токен доступа, и если да, делать вызовы API и входить в систему и т. Д. на.

Я провел некоторое время, глядя на express-session и cookie-session и просто не могу найти правильный способ сделать это. express-session требуется хранилище для производства, и я не хочу настраивать хранилище для простого хранения токена доступа. Итак, что-то вроде этого работает в devleopment:

app.use(
  session({
    secret: 'conduit',
    cookie: {
      path: '/',
      maxAge: 60 * 60 * 1000,
      httpOnly: true,
      secure: isProduction,
    },
    resave: false,
    saveUninitialized: false,
  })
)

Использование этого для установки его по запросу:

request.session.accessToken = accessToken
request.session.save()

Но если это не будет работать в производственной среде, это не поможет. Я не смог заставить его работать с cookie-session, или я не знаю, как установить / получить файлы cookie, и документация не очень полезна.

Поэтому я спрашиваю:Как я могу хранить несколько строк на сервере Express / cookie cookie httpOnly постоянно, без использования Store / Redis / MemCache / и т. д.?

1 Ответ

0 голосов
/ 23 октября 2019

Мне пришлось использовать cookieParser.

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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...