import "server-only";
import { redirect } from next/navigation;
interface Props extends React.PropsWithChildren {}
// will render children if authenticated and
// redirect to login otherwise.
async function AuthRedirect({ children }: Props): Promise<JSX.Element> {
const auth = await getAuth();
if (!auth) redirect("/login");
return <>{children}</>;
}
export default AuthRedirect;
export type { Props as AuthRedirectProps };
1条答案
按热度按时间guykilcj1#
您也可以在服务器组件中执行相同的操作。您现在可以创建一个异步服务器组件来复制相同的行为,而不是使用服务器端props。
在上面的示例中,您可以将这个组件导入到您只想向经过身份验证的用户显示的任何页面中,并使用它 Package 页面内容。
重要提示
server-only
软件包需要单独安装,如果您尝试在客户端使用服务器组件,它会用来抛出错误。