повар ie не работает в expressjs приложении - PullRequest
0 голосов
/ 17 января 2020

по какой-то причине повар ie не отображается в браузере, и по этой причине никто из пользователей не вошел в систему. Пожалуйста, посмотрите на код ...

1) auth. контроллер. js

// отправка файлов cookie (Cook ie - это в основном jwt, который я создаю)

let sendToken = (user, statusCode, res) => {
    let token = signToken(user._id)
    let cookieOptions = {
            expires: new Date(
                Date.now() + process.env.JWT_COOKIE_EXPIRES_IN * 21 * 60 * 60 * 1000),
                httpOnly: true
    }
    if(process.env.NODE_ENV === 'production') cookieOptions.secure = true
    res.cookie('jwt', token, cookieOptions)
    user.password = undefined
    res.status(statusCode).json({
        status: 'success',
        token,
        data: { user }
    })
}

// это промежуточное ПО isLoggedIn отслеживает файлы cookie. Я использую pug, поэтому я помещаю пользовательский объект в ответ, чтобы я мог получить к нему доступ в шаблоне

exports.isLoggedIn = async(req, res, next) => {
  if(req.cookies.jwt) {
      try {
    //  verify token
    let decoded = await promisify(jwt.verify)(
        req.cookies.jwt, process.env.JWT_SECRET)
    // check if user still exists
    let user = await User.findById(decoded.id)
    if (!user) return next()
    // check if user changed pswd after token was issued
    if (user.changedPasswordAfter(decoded.iat)) {
        return next()
    }
    res.locals.user = user
   return next()
} catch (e) {
    return next()
}
}
next()
}

3) это шаблон pug для заголовка. проблема в том, что код не входит в блок if. таким образом, пользовательский объект не доступен для шаблона ...

header.header
  nav.nav.nav--tours
    a.nav__el(href='/') All tours
  .header__logo
    img(src='/img/logo-white.png' alt='Natours logo')
  nav.nav.nav--user
    if user
      a.nav__el.nav__el--logout Log out
      a.nav__el(href='/me')
        img.nav__user-img(src=`/img/users/${user.photo}` alt=`Photo of ${user.name}`)
        span= user.name.split(' ')[0]
    else
      a.nav__el(href='/login') Log in
      a.nav__el.nav__el--cta(href='#') Sign up
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...