Auth0 について質問があります。ログイン。そしてログアウトします。反応タイプスクリプトを使用します。
これは Index.tsx にあります。
root.render(<プロバイダストア={ストア}> );<アプリ/> プロバイダー>
認証構成にいくつかのコードが指定されています。
ログイン ボタンまたはログアウト ボタンが表示されました。
const AuthButton = () => { const { isAuthenticated、loginWithRedirect、ログアウト } = useAuth0(); const handleLogin = () => { loginWithRedirect(); }; const handleLogout = () => { logout({ logoutParams: { returnTo: window.location.origin } }); }; 戻る ( <ボタン スタイル={{ 色: '白'、 背景色: '#142952', marginRight: '4rem', フォントファミリー: 'Consolas'、 境界線: 'なし'、 境界半径: '3px', 幅: '110px', 高さ: '40px' }} onClick={isAuthenticated ? handleLogout : handleLogin} > {isAuthenticated ? 'ログアウト' : 'ログイン'} ボタン> ); }; デフォルトの AuthButton;をエクスポートします。
また。ユーザー情報を取得して表示します。
const Profile = () => { const { ユーザー、isAuthenticated、getAccessTokenSilently } = useAuth0(); const [accessToken, setAccessToken] = useState(''); useEffect(() => { const getAccessToken = async () => { 試す { const token = await getAccessTokenSilently(); setAccessToken(トークン); } キャッチ (エラー) { コンソール.エラー(エラー); } }; if (isAuthenticated) { getAccessToken(); console.log("認証済み") } }, [isAuthenticated, getAccessTokenSilently]); if (!isAuthenticated) { returnプロフィールを表示するにはログインしてください。; } 戻る ({ユーザー?.写真&& ( )}); }; デフォルトのプロファイルをエクスポート;こんにちは {user?.name}
メールアドレス: {user?.email}
ログイン方法: {user?.sub?.split('|')[0]}
アクセストークン: {accessToken}
上で説明しました
loginredirect の代わりに loginWithPopup を使用することで、この問題を解決しました。私もこのリンクを使用しました。
リーリーwindow.location.origin は使用していません。ただし、コードのこの部分ではアドレスを使用しています。