Как перенаправить пользователей по IP-адресу при начальной загрузке в Gatsbyjs - PullRequest
0 голосов
/ 12 февраля 2020

Я пытаюсь создать веб-сайт gatsby (реагирующий), который автоматически перенаправляет пользователей на разные языковые индексные страницы на основе их IP-адресов.

Ниже приведена структура моего кода:

layout.en. js

import React, { Component } from 'react'
import axios from 'axios'

class Layout extends Component {
 state = {countryCode: ''}

  componentWillMount() {
    this.getIp()
  }

  getIp = () => {
    axios
      .get('https://ipapi.co/json/')
      .then(response => {
        let data = response.data
        this.setState({
          countryCode: data.country_code,
        })
      })
      .catch(error => {
        console.log(error)
      })
  }
render(){
    if (this.state.countryCode === 'CN') {
      window.location = '/cn/'
    }
} return 
(...)
}

Проблема с вышеуказанной настройкой заключается в том, что пользователи не смогут переключиться обратно на сайт Engli sh, он будет перенаправлять их каждый раз, когда они пытаются посетить страницу индекса по умолчанию. Я понимаю, что для решения этой проблемы мне может потребоваться реализация cook ie или хранилища сеансов, но я не уверен, как это сделать. Было бы здорово, если бы кто-нибудь помог мне пройти через этот процесс.

...