Ответы пользователя по тегу React
  • Как отправить данные JSON на клиент?

    @PAVLIK_GYRA
    router.post('/', (req, res) => {
    {query} = req.body
        product.find(async(err, data) => {
            if (err) res.status(400).send(err);
            else {
                if (query) {
                    const newData = await data.filter(item => item.name.toLowerCase().search(query.trim().toLowerCase()) !== -1);
        
                    res.json(newData);
                }
            }
        })
    })
    Ответ написан
    Комментировать
  • Как изменить контент в блоке по клику на ссылку изменить контент в React?

    @PAVLIK_GYRA
    Попробуй поставить атрибут onClick={Func} а уже Fuck будет менять содержимое.
    Ответ написан
    3 комментария
  • Как правильно организовать работу с токенами (jwt) в react?

    @PAVLIK_GYRA
    В authMiddleware подключена библиотека jwt но так и не использована! Вот пример моего мидла
    const jwt = require('jsonwebtoken')
    const c = require('config')
    
    // проверка токена
    
    const auth = async (req, res, next) => {
      try {
        const token = req.header('x-auth-token') //тут может быть любой хэдр у меня кастомный
        if (!token) return res.status(401).json({ msg: 'No auth 1' })
        const verified = jwt.verify(token, c.get('jwtSecret'))
        if (!verified) return res.status(401).json({ msg: 'No auth 2' })
        req.user = verified.id
        next()
      } catch (e) {
        res.status(500).json({ error: e.message })
      }
    }
    
    module.exports = auth


    потом на фронте например на странице авторизации и отправке данных и проверке на сервере вернуть токен и юзерИнфо на фронт(желательно ещё записать в localStorage типа token:dghehgfdgnhrhwrr) закинуть в useState и до нужного элемента прокинуть через useContext. А потом как хочешь... на нужной странице можешь опять проверить токен и если он валидный выполнять ту или иную логику.
    1) только на сервере тк так есть серверный ключ для расшифровки.
    2) например я проверяю токен при первом обращении к сайту так
    router.post('/login', async (req, res) => {
      // --> проверка токена на валидность
      try {
        const token = req.header('x-auth-token')
        if (!token) return res.json(false)
        const verified = jwt.verify(token, config.get('jwtSecret'))
        if (!verified) return res.json(false)
        const user = await User.findById(verified.id)
        if (!user) return res.json(false)
        return res.json(true)
      } catch (e) {
        res.status(500).json({ error: e.message })
      }
    })


    у меня любой запрос на сервер идёт с хэдером и на сервере его проверяет милдвэр auth
    Ответ написан
    Комментировать