Как я могу сохранить экспресс-сеанс, когда я использую Axios? - PullRequest
0 голосов
/ 05 октября 2018

Я использую Express для своей внутренней части приложения React, когда я устанавливаю сеанс на странице и перенаправляю на другую страницу моего веб-приложения, сеанс удалялся

Вот мой экспресс-код:

async function createUser(req, res, next) {
  try {
    let parameters = req.body
    let user = await models.User.create({
      displayName: parameters.displayName,
      phone: parameters.phone,
      sex: parameters.sex,
      password: parameters.password,
  })
  req.session.user = user.dataValues;
  res.json({
    status: 'success',
    user,
  })
}

и вот мой код реакции:

onSubmit = (event) => {
  event.preventDefault()
  request.post('/newuser',{
    displayName:this.state.name,
    phone:this.state.phone,
    password:this.state.password,
    sex:this.state.sex
  })
  .then(function(response){
    this.props.authenticate(true)
    this.setState({
      auth:true
    })
  }.bind(this))
}

и вот мой метод реагирования:

render(){
  if(this.state.auth) 
    return <Redirect to='/profile' />;
}

со всем этим, когда я перенаправлен на страницу профиля iУ меня нет сессии, и вся надежда ушла:))

Пожалуйста, помогите мне решить эту проблему.

1 Ответ

0 голосов
/ 05 октября 2018

Когда вы используете axios для отправки запроса, вы должны сделать это:

In Front (React): Вы должны установить withCredentials: true в настройке axios, например:

import axios from 'axios'
import config from '../../config'

const request = axios.create({
  baseURL: config.url,
  timeout: 20000,
  withCredentials: true,
});

export default request

In Back (Node / Express): Вы должны добавить этот код в cors

const express = require('express')
const cors = require('cors')

app.use(cors({
  origin:['http://localhost:9520']//your front url,
  methods:['GET','POST'],
  credentials: true
}))

Я выяснил это с помощью поиска, хотя спасибо, что не помог :) :))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...