试图弄清楚如何在Gatsby.js中实现cookie并通过新的GDPR法以某种方式进行管理

时间:2019-10-11 13:33:28

标签: reactjs cookies google-analytics gatsby

我已经测试了已实现的cookie中心,react-ga,gatsbu插件gdpr cookie。 配置它们时没有什么特别的事情,甚至在devtools中都看不到任何cookie。 有没有人想出如何为Gatsby实现cookie并让用户选择他要使用的cookie? 我是否需要在头部内放一个特殊的脚本标签,还是应该用gatsby.config替换它?

亲切的问候,乔纳森

不幸的是,P.S没有要显示的脚本..

2 个答案:

答案 0 :(得分:1)

许多插件只能在“生产”模式下使用,例如那些google分析型插件。每次程序运行时,Gatsby都会为您自动设置的NODE_ENV变量来启用插件。将gatsby build的{​​{1}}设置为“开发”,将禁用某些插件。

当您NODE_ENVgatsby build时,此环境变量被设置为gatsby serve,因此启用了插件。

关于Cookie同意:

您可以使用诸如react-cookie-consent之类的项目:

production

答案 1 :(得分:0)

谢谢EliteRaceElephant!我们得到了它的工作。 但是现在我们偶然发现了一个新的障碍。 当我尝试执行Cookies.remove('_ gid')等时,cookie被删除,但在更改页面时再次出现。我们的代码看起来像这样的ATM:

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不会重新出现