Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs react google登录清除我的应用程序中的cookie/会话信息_Reactjs_Authentication_Oauth 2.0_React Hooks_React Google Login - Fatal编程技术网

Reactjs react google登录清除我的应用程序中的cookie/会话信息

Reactjs react google登录清除我的应用程序中的cookie/会话信息,reactjs,authentication,oauth-2.0,react-hooks,react-google-login,Reactjs,Authentication,Oauth 2.0,React Hooks,React Google Login,我已使用在我的应用程序中设置身份验证。当我重新加载页面时,我无法理解为什么会话/cookie信息在我的应用程序中消失。重新加载页面的用户将被注销:( 以下是我的应用程序登录组件中的代码: const Login = () => { const [user, setUser] = useContext(UserContext); const onSuccess = (response) => { axios.post(API_ONE, { name: re

我已使用在我的应用程序中设置身份验证。当我重新加载页面时,我无法理解为什么会话/cookie信息在我的应用程序中消失。重新加载页面的用户将被注销:(

以下是我的应用程序登录组件中的代码:

const Login = () => {
  const [user, setUser] = useContext(UserContext);

  const onSuccess = (response) => {
    axios.post(API_ONE, {
      name: response.profileObj.name,
    });

    axios.post(API_TWO, {
      email: response.profileObj.email,
    });

    navigate("/");
    setUser({
      id: response.profileObj.email,
      userLoggedIn: true,
    });
  };

  const { signIn } = useGoogleLogin({
    onSuccess,
    clientId: CLIENT_ID,
    isSignedIn: true
  });

  return (
    <div>
      <button onClick={signIn}></button>
    </div>
  );
};

export default Login;


我猜这和包裹有关。我猜包裹在这里做些什么。 因此,我建议您将package.json更改为以下内容

“开发人员”:“反应脚本启动”

请考虑这条线。

“清除生成缓存”:“rm-rf.cache/dist/”


所有本地存储都保存在文件系统的某个地方,但看起来您的建筑系统每次都会清除它们。

似乎您的某个软件包会清除信息。或者您的代码。您可以共享您的软件包。json吗?@ZhangTianYu在编辑部分更新了软件包json文件。您有什么调试技巧来确定我的代码的哪一部分吗e正在清除信息?我尝试过一步一步地检查,但我无法找出它。我尝试过一点,我想我将不得不重写整个应用程序,而不使用parcel来测试这件事,因为如果我尝试破解和测试,它会断开所有链接。你有任何其他建议来测试parcel是否是我看到的这个问题的原因吗?我也在思考一个问题关于为带有/不带包裹的应用程序单独设置身份验证,以确认您提到的这件事-感谢您的想法。我将继续向您发送感谢您让我知道。看起来包裹不是问题,我尝试在一个简单的项目中设置包裹,安装了react google登录并尝试刷新。它似乎没有清除我的Cookie,本地和会话存储。看起来我的代码正在做一些事情-有没有想过如何找出这些信息被清除的原因?我明白了…你可以试试这个。如果你有代码A、B、C、D、E和谷歌登录。你可以删除除谷歌登录外的所有代码,然后逐个删除代码,看看是否仍然发生这种情况,你可以确认是哪一部分原因问题,当我没有任何线索时,这是我最好的工作调试技术之一
{
  "name": "my-app",
  "version": "1.0.0",
  "main": "src/App.js",
  "dependencies": {
    "@reach/router": "^1.3.3",
    "axios": "^0.19.0",
    "react": "^16.13.1",
    "react-dom": "^16.12.0",
    "react-google-login": "^5.1.21",
    "react-router-dom": "^5.2.0",
    "react-scripts": "0.9.5"
  },
  "devDependencies": {
    "babel-eslint": "^10.1.0",
    "eslint": "^7.12.0",
    "eslint-config-prettier": "^6.14.0",
    "eslint-plugin-import": "^2.22.1",
    "eslint-plugin-jsx-a11y": "^6.3.1",
    "eslint-plugin-react": "^7.21.5",
    "parcel-bundler": "^1.12.4"
  },
  "scripts": {
    "dev": "parcel src/index.html",
    "clear-build-cache": "rm -rf .cache/ dist/",
    "format": "prettier \"src/**/*.{js, html}\" --write",
    "lint": "eslint \"src/**/*.{js,jsx}\" --quiet"
  }
}