React Auth0 logout вызывается дважды - PullRequest
0 голосов
/ 30 октября 2019

Я использую перехватчики реакции и следую учебному пособию из https://auth0.com/docs/quickstart/spa/react/01-login

Но моему приложению не требуется общий вход / выход из системы, оно больше похоже на приложение для регистрации с авторизацией и создает обработанную учетную записьпо auth0. Итак, в следующем коде я вышел из системы, как только он вошел в систему. Ошибка в том, что функция logout() запускается дважды, и я не мог понять, в чем проблема.

import React, { useEffect } from "react";
import { useAuth0 } from "../react-auth0-spa";

const LoginButton = ({ writeToDb }) => {
  const {
    isAuthenticated,
    loginWithRedirect,
    logout,
    loading,
    user
  } = useAuth0();

  useEffect(() => {
    // our user doesn't need to logout
    // so we are calling logout whenever they login
    if (isAuthenticated && !loading && user) {
      alert(`email: ${user.email} name: ${user.name}`); //trigged twiced
      writeToDb(user.name, user.email, user.picture); //async function add profile to database
      logout();
    }
  }, [isAuthenticated, loading, addNewAgent, logout, user]);

  return <button onClick={() => loginWithRedirect({})}>Check in</button>;
};

export default LoginButton;

Также logout() не срабатывает каждый раз, это происходит с перебоями. Я использую Chrome v78.0.3904.70, и ошибка не воспроизводится в ноутбуке моего друга

...