0

我正在使用 React 构建一个简单的站点,并且我正在测试来自https://www.npmjs.com/package/react-google-login的 GoogleLogin 组件。我在 http://localhost:3000 上运行 react。我设置了允许该主机的 cookie 策略。但是,每次启动反应服务器时,我都会收到相同的错误:

“cookiePolicy 无效 - gapi.auth2.ExternallyVisibleError:cookieP 无效…Naq8ri2P66tzK7chsKcRiE1CsLyQ/cb=gapi.loaded_0:1:6”

我还在 Google OAuth 凭据中添加了 http://localhost:3000 作为授权的 JavaScript 来源。在我的 index.js 文件中,我有:

import React from 'react';
import ReactDOM from 'react-dom';
import GoogleLogin from "react-google-login";

const responseGoogle = (response) => {
  console.log(response);
}

ReactDOM.render(
  <GoogleLogin
    clientId="296036318202-uraiim5u0cf5qpqhujl3aaj1kniuu41e.apps.googleusercontent.com"
    buttonText="Login"
    onSuccess={responseGoogle}
    onFailure={responseGoogle}
    cookiePolicy={"http://localhost:3000/"}
  />,
  document.getElementById('googleButton')
);

我尝试将 cookiePolicy 替换为“http://localhost:3000”,但随后它开始抱怨正在发送跨站点 cookie:

"通过指定其 SameSite 属性指示是否在跨站点请求中发送 cookie"

4

1 回答 1

0

我遇到了这个问题,我发现我正在使用http://[::1]:3000/...而不是访问页面localhost

当更改为localhost:3000它对我有用。

我认为 google 不喜欢127.0.0.1,::1或在本地文件中使用 gapi ,因为这不安全。

于 2021-11-26T00:44:39.823 回答