Как отправить clientIP в заголовках запроса с помощью axios - PullRequest
0 голосов
/ 02 октября 2018

Моя текущая структура проекта выглядит следующим образом

- MyApp
  - client
  - config
  - server
  - shared
    - src
        myReactApp.jsx
    - services
        api.js
        userService.js

Я хочу отправлять IP-адрес клиента на сервер API во всех запросах в качестве заголовка. Я использую Axios для отправки запросов на сервер мой api.js файл имеет этот

import axios from 'axios';

export default () =>
  axios.create({
    baseURL: config('apiUrl')
  });

, и в моей службе пользователя я называю api.js следующим образом

import api from './api'
export default {
  fetchUserProfileDetails() {
    return api().get('/user/profile')
  }
}

, который я затем использую в своих компонентах как

import UserService from '../userService'

...

componentDidMount () {
  UserService.fetchUserProfileDetails()
  .then(results => {
    // do stuff with the results
  })
}

я хочу знать, как отправлять IP-адрес клиента в каждом запросе, когда у меня есть такой тип установки. Приложение основано на реакции и также отображается на стороне сервера, используя express в качестве сервера, который я могу получить.IP-адрес клиента, используя req.connection.socket.remoteAddress.split(",")[0], и я также могу отправить его в приложение реагирования.

Как использовать его в axios?

Я использую контекстный API реагирования для отправки IP-адреса внутриПриложение «Реакция», это правильный способ отправки информации с сервера на приложение «Реакция»?

1 Ответ

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

Если вы уже можете получить IP-адрес клиента в своем коде, вы можете установить заголовок по умолчанию Axios, как axios.defaults.headers.common['CLIENT_IP'] = clientIP.

Если у вас нет IP-адреса клиента, вы можете получить его с помощью стороннего приложения с другим кодом.Просто взгляните на эту статью https://ourcodeworld.com/articles/read/257/how-to-get-the-client-ip-address-with-javascript-only

Но чтобы получить ее, лучше использовать ваш сервер.В экспрессе это просто req.ip.

...