ホームページ  >  に質問  >  本文

Auth0 ログイン プロファイルとログアウト プロファイルが機能しません。タイプスクリプトに反応する

<p>Auth0 について質問があります。ログイン。そしてログアウトします。反応タイプスクリプトを使用します。 </p> <p>これは Index.tsx にあります。 </p> <pre class="brush:php;toolbar:false;">root.render( <Auth0プロバイダー ドメイン= "somecode.us.auth0.com" clientId=「何らかのコード」 authorizationParams={{ redirect_uri: window.location.origin }} > <React.StrictMode> <プロバイダストア={ストア}> <CssBaseline /> <アプリ/> </プロバイダー> </React.StrictMode> </Auth0Provider> );</pre> <p>認証構成にいくつかのコードが指定されています。 </p> <p>ログイン ボタンまたはログアウト ボタンが表示されました。 </p> <pre class="brush:php;toolbar:false;">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;</pre> をエクスポートします。 <p>また。ユーザー情報を取得して表示します。 </p> <pre class="brush:php;toolbar:false;">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 <div>プロフィールを表示するにはログインしてください。</div>; } 戻る ( <div> {ユーザー?.写真&& ( <img src={user.picture} alt="プロフィール画像" /> )} <h2>こんにちは {user?.name}</h2> <p>メールアドレス: {user?.email}</p> <p>ログイン方法: {user?.sub?.split('|')[0]}</p> <p>アクセストークン: {accessToken}</p> </div> ); }; デフォルトのプロファイルをエクスポート;</pre> <h1><strong>これが私の問題です</strong>: Auth0 プロトコルでログインした後、<strong>ログイン ログアウト ボタンが変化しません</strong>。初め。それが開き、auth0 ダイアログに進みます。しかし。 Google アカウントでログインした後。その後、ボタンには「ログイン」と表示されたままになります。 これは、決してログインしないことを意味します。本当にどうすればいいのか分かりません。ここに私が持っている auth0 構成設定があります。 </h1> <p>上で説明しました</p>
P粉349222772P粉349222772384日前384

全員に返信(1)返信します

  • P粉832490510

    P粉8324905102023-09-04 00:04:36

    loginredirect の代わりに loginWithPopup を使用することで、この問題を解決しました。私もこのリンクを使用しました。

    リーリー

    window.location.origin は使用していません。ただし、コードのこの部分ではアドレスを使用しています。

    返事
    0
  • キャンセル返事