Node.js - неверный токен csurf - PullRequest
       10

Node.js - неверный токен csurf

0 голосов
/ 29 марта 2020

Я использую модуль npm csurf для генерации токена. Сначала я получаю токен с сервера, который затем использую для запроса / register. Когда я делаю те же шаги с почтальоном, это похоже на работу, но, к сожалению, не в приложении. Там всегда выдается сообщение об ошибке, что токен недействителен

--- на стороне сервера ---

csrfProtection. js

import csrf from 'csurf';

export default csrf({
  cookie: true
});

маршрутизатор. js

import csrfProtection from './../../config/csrfProtection'
router.get('/csrfToken', csrfProtection, async (req, res, next) => {
  return res.send(req.csrfToken());
});

router.post(
  '/register',
  validationHelper({ validation: registerUserValidation }),
  csrfProtection,
  async (req, res, next) => {
    return res.send('user registered');
  }
);

приложение. js

const app = express();

app.use(cookieParser());
app.use(
  cors()
);
app.use(compression());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

--- Клиентская сторона ---

const token = await this.$axios.$get('/csrfToken')
// token has the value 1KFmMJVz-dspX9TJo8oRInPzgDA1VY28uqQw

    await this.$axios.$post(
      '/register',
      {
        name: 'test456',
        email: 'test@gmail.com',
        password: '123456789'
      },
      {
        headers: {
          'csrf-token': token
        }   
      }
    )

Кто-то испытывал такую ​​же проблему? Интерфейс и бэкэнд размещены в разных доменах.

enter image description here enter image description here

...