Я использую модуль 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
}
}
)
Кто-то испытывал такую же проблему? Интерфейс и бэкэнд размещены в разных доменах.