auth.loginWithRedirect() 之后的 Auth0 重定向循环 - @auth0/auth0-spa-js

我目前正在将我的(React)应用程序的身份验证从 Auth0 react SDK 切换到普通的 SPA SDK(因为我不喜欢在 react SDK 中获取令牌的方式)

我现在面临的问题是,当我登录应用程序时,我陷入了一个无限的重定向循环,这是由下面的组件引起的(我认为)。一些上下文:路由器使用受保护的路由,将用户重定向到处理身份验证的 /login 路由。在下面的组件中 auth.isAuthenticated() 总是返回 false ......这就是调用 auth.loginWithRedirect() 的原因。但我看不到如何解决这个问题......

const LoginRoute: React.FunctionComponent<any> = ({ ...props }) => {
  const { isLoggedIn, loading } = useSelector(userSelector);
  const dispatch = useDispatch();

  useEffect(() => {
    const handleAsyncLogin = async () => {
      const isAuthenticated = await auth.isAuthenticated();
      if (isAuthenticated) {
        // Auth0 says we are logged in, so we only need to store the user in the store
        dispatch(login());
      } else if (!!auth && !loading) {
        // We are *not* logged in. Go to Auth0 login page.
        await auth?.loginWithRedirect();
      }
    };
    handleAsyncLogin();
  }, [dispatch, loading]);

  return (
    <Route
      {...props}
      component={() => {
        if (isLoggedIn) {
          console.log("Is Logged In");
          // We are *definitely* logged in, go to projects
          return <Redirect to="/questionsFromMe" />;
        }
        if (loading) {
          return <Loader />;
        }
        return <div />;
      }}
    />
  );
};

请帮帮我!提前致谢。

stack overflow Auth0 redirect loop after auth.loginWithRedirect() - @auth0/auth0-spa-js
原文答案

答案:

作者头像

Try setting the 'Application Type' to a value that suits your app in auth0 application properties page if you have not already. enter image description here