res.cook ie не сохраняется в браузере - PullRequest
0 голосов
/ 09 мая 2020

В настоящее время я пытаюсь настроить свое приложение для реагирования и подключить его к моей серверной части. Я использую JWT для создания веб-токенов, которые затем сохраняю через cookieparser.

Сервер работает: http://localhost: 3000 / Клиент работает: http://127.0.0.1: 8080 / client / public /

Теперь я пытаюсь сделать почтовый запрос от клиента (реагировать) и пытаюсь сохранить токен (cook ie) в браузере, но он не работает. Он постоянно сохраняет повар ie в домене localhost: 3000, а не в домене, где запущен клиент . Ниже соответствующий код для бэкэнда и внешнего интерфейса:

**// This is the cors setup for Express**

app.use(cors({ origin: 'http://127.0.0.1:8080', credentials: true }))

**// This is the request router API for creating the user and the cookie (and sending it to the browser)**

router.post('/api/users', async (req, res) => {
    const user = new User(req.body)
    try {
        await user.save()
        const token = await user.generateAuthToken()
        res.cookie('auth_token', token, { httpOnly: false,                 sameSite: 'none' }) 
        res.set('Content-Type', 'application/json')
        res.send(token)
    } catch (e) {
        res.status(400).send('Did not work')
    }
})


**// This is the request from the client with Axios:**

axios.post('http://localhost:3000/api/users', {
            name: this.state.userName,
            email: this.state.userEmail,
            password: this.state.userPassword,
        }, {
            withCredentials: true,
            credentials: 'include'
        })
        .then( (response) => {
            const data = response
            console.log(data)
        })
        .catch( () => {
            console.log('Cant access backend')
        })

        this.setState({
            userName: '',
            userEmail: '',
            userPassword: ''
        })
    }

Изображения:

Настройка cors

это маршрутизатор api: Маршрутизатор API для создания пользователя и отправки его в БД

это клиентский (внешний) запрос Отправить запрос на регистрацию пользователя с помощью ax ios

Заранее большое спасибо за помощь :)

1 Ответ

0 голосов
/ 09 мая 2020

Вы храните повар ie на сервере. Для вас хранить в клиенте. Верните файл cook ie и сохраните его, используя файл stati c js в клиенте.

//Returned cookie
document.cookie = "auth_token=token returned by server;
...