Auth0-Anmelde- und Abmeldeprofile funktionieren nicht. Typoskript reagieren
P粉349222772
2023-09-03 10:57:28
<p>Ich habe eine Frage zu Auth0. Anmeldung. und abmelden. Verwenden von Reaktionstyposkript. </p>
<p>Dies ist in Index.tsx. </p>
<pre class="brush:php;toolbar:false;">root.render(
<Auth0Provider
domain="somecode.us.auth0.com"
clientId="somecode"
AuthorizationParams={{
Redirect_uri: window.location.origin
}}
>
<React.StrictMode>
<Provider store={store}>
<CssBaseline />
<App />
</Anbieter>
</React.StrictMode>
</Auth0Provider>
);</pre>
<p>In der Authentifizierungskonfiguration ist ein Teil des Codes angegeben. </p>
<p>Jetzt habe ich eine Schaltfläche zum Anmelden oder Abmelden. </p>
<pre class="brush:php;toolbar:false;">const AuthButton = () =>
const { isAuthenticated, loginWithRedirect, logout } = useAuth0();
const handleLogin = () =>
loginWithRedirect();
};
const handleLogout = () =>
logout({ logoutParams: { returnTo: window.location.origin } });
};
zurückkehren (
<-Taste
Stil={{
Farbe weiß',
Hintergrundfarbe: '#142952',
marginRight: '4rem',
Schriftartenfamilie: 'Consolas',
Grenze: 'keine',
borderRadius: '3px',
Breite: '110px',
Höhe: '40px'
}}
onClick={isAuthenticated ? handleLogout : handleLogin}
>
{isAuthenticated ? 'Logout' : 'Login'}
</button>
);
};
Standard-AuthButton exportieren;</pre>
<p>Auch. Ich rufe Benutzerinformationen zur Anzeige ab. </p>
<pre class="brush:php;toolbar:false;">const Profile = () =>
const { user, isAuthenticated, getAccessTokenSilently } = useAuth0();
const [accessToken, setAccessToken] = useState('');
useEffect(() => {
const getAccessToken = async () =>
versuchen {
const token = Warten auf getAccessTokenSilently();
setAccessToken(token);
} Catch (Fehler) {
console.error(error);
}
};
if (isAuthenticated) {
Zugriffstoken erhalten();
console.log("authentifiziert")
}
}, [isAuthenticated, getAccessTokenSilently]);
if (!isAuthenticated) {
zurück <div>Bitte melden Sie sich an, um Ihr Profil anzuzeigen.</div>;
}
zurückkehren (
<div>
{user?.picture &&
<img src={user.picture} alt="Profilbild"
)}
<h2>Hallo {Benutzer?.Name}</h2>
<p>E-Mail: {user?.email}</p>
<p>Anmeldemethode: {user?.sub?.split('|')[0]}</p>
<p>Zugriffstoken: {accessToken}</p>
</div>
);
};
Standardprofil exportieren;</pre>
<h1><strong>Hier ist mein Problem</strong>: Nachdem ich mich mit dem Auth0-Protokoll angemeldet habe, ändert sich die Schaltfläche <strong>Anmelden und Abmelden nicht</strong>. Erste. Es öffnet sich und geht zum Auth0-Dialogfeld. Jedoch. Nachdem ich mich mit meinem Google-Konto angemeldet habe. Dann steht auf dem Button immer noch „Anmelden“. <strong>Das bedeutet, dass es nie zu einer Anmeldung kommt</strong>. Ich weiß wirklich nicht, was ich tun soll. Hier sind die Auth0-Konfigurationseinstellungen, die ich habe. </h1>
<p>Wie oben erklärt</p>
我通过使用loginWithPopup而不是loginredirect解决了这个问题。我也使用了该链接。
我没有使用window.location.origin。但我在这部分代码中使用了地址。