Попытка выяснить, как внедрить куки в Gatsby.js и как-то управлять ими с помощью нового закона GDPR - PullRequest
1 голос
/ 11 октября 2019

Я протестировал внедренные cookie-файлы cookie, activ-ga, gatsbu plugin-gdpr. Ничего особенного не происходит, когда я их настраиваю, я даже не вижу никаких файлов cookie внутри devtools. Кто-нибудь придумал, как внедрить куки для Gatsby и позволить пользователю выбирать, какие куки он хочет использовать? Нужно ли мне иметь специальный тег сценария внутри головы или gatsby.config должен заменить это?

С уважением, Джонатан

К сожалению, PS не имеет сценария для отображения ..

Ответы [ 2 ]

1 голос
/ 13 октября 2019

Многие плагины работают только в «производственном» режиме, например в Google Analytics. Плагины включаются на основе переменной NODE_ENV, которую Gatsby автоматически устанавливает для вас при каждом запуске вашей программы. С gatsby build NODE_ENV установлено «развитие», которое отключает некоторые плагины.

Когда вы gatsby build и gatsby serve, эта переменная окружения установлена ​​на production, и, таким образом, плагины включаются.

Относительно согласия cookie:

Вы можете использовать такие проекты, как Reaction-Cookie-согласия :

import CookieConsent from "react-cookie-consent";

<CookieConsent
    enableDeclineButton
    onAccept={() => {alert("yay!")}}
    onDecline={() => {alert("nay!")}}
>
This website uses cookies to enhance the user experience.
</CookieConsent>
0 голосов
/ 14 октября 2019

Спасибо EliteRaceElephant! Мы получили это на работу. Но теперь мы наткнулись на новое препятствие. когда я пытаюсь выполнить Cookies.remove ('_ gid') и т. д., куки удаляются, но появляются снова при смене страницы. Наш код выглядит следующим образом:

import CookieConsent, { Cookies } from "react-cookie-consent";

const App = props => {
  return (
    <div>
      <Global.MainContainer>
        <Global.flexContainer>
          <Header />
          <div className="contentWrapper">{props.children}</div>
          <CookieConsent
            enableDeclineButton
            location="bottom"
            buttonText="Sure man!!"
            cookieName="myAwesomeCookieName2"
            style={{ background: "#2B373B" }}
            buttonStyle={{ color: "#4e503b", fontSize: "13px" }}
            onDecline={() => { Cookies.remove('_ga')
            Cookies.remove('_gat')
            Cookies.remove('_gid')}}
            setDeclineCookie={false}
          >
            This website uses cookies to enhance the user experience.{" "}
            <span style={{ fontSize: "10px" }}>
              This bit of text is smaller :O
            </span>
          </CookieConsent>
        </Global.flexContainer>
        <Footer />
      </Global.MainContainer>
    </div>
  )
}

export default App

Мы хотим сохранить состояние пользовательского ввода, чтобы файлы cookie не появлялись вновь

...