目标:如果登录用户尝试手动转到 /auth/signin,我想将其重定向到主页。
登录页面/组件:
const Signin = ({ currentUser }) => {
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const { doRequest, errors } = useRequest({
url: '/api/users/signin',
method: 'post',
body: {
email, password
},
onSuccess: () => Router.push('/')
});
useEffect(() => {
const loggedUser = () => {
if (currentUser) {
Router.push('/');
}
};
loggedUser();
}, []);
Run Code Online (Sandbox Code Playgroud)
自定义 _app 组件:
const AppComponent = ({ Component, pageProps, currentUser }) => {
return (
<div>
<Header …Run Code Online (Sandbox Code Playgroud) reactjs react-router server-side-rendering react-redux next.js
我想包装我的整个应用程序,以便除非用户登录,否则无法访问它。如果用户未登录,我设法将用户重定向到登录页面,但是,我仍然看到之前的私有路由闪现发生重定向。如何避免这种情况?