Я использую перехватчики реакции и следую учебному пособию из 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, и ошибка не воспроизводится в ноутбуке моего друга