environmental-rose•2y ago
<Authenticated /> Best Practice
I am relatively new to Next and am working on setting up a project using Cognito/Amplfy v5. I have my auth provider set up and am wrapping my protected routes in <Authenticated />.
I want to have every route except from /login, /reset-password, etc configured to be behind <Authenticated /> by default, such that I don't need to define it in the layout file for every page and any route not aforementioned will redirect to /login . Is there a way to do this that would follow internal best practices?
3 Replies
Hi @benjodev. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:
----------------------
Yes, you can achieve this by wrapping your entire application with the
<Authenticated /> component and defining the fallback as /login. This will ensure that all routes, except those specifically defined, will be protected and any unauthenticated access will be redirected to the /login page.
Here is an example of how you can structure your routes:
In this example, the <Authenticated /> component is used to wrap the entire application. The fallback prop is set to <Outlet />, which will render the /login and /reset-password routes if the user is not authenticated. All other routes are nested within another <Authenticated /> component, which will redirect unauthenticated users to the /login page.
Remember to replace <AuthPage type="login" />, <ResetPasswordPage />, <ThemedLayoutV2 />, <PostList />, <PostCreate />, <CategoryList />, and <CategoryShow /> with your actual components.
For more information, you can refer to the Refine documentation on the <Authenticated /> component (https://refine.dev/docs/authentication/components/authenticated#fallback) and Refine's guide on routing with React Router (https://refine.dev/docs/routing/integrations/react-router#usage-with-access-control-providers).
----------------------
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
----------------------<@1228438565529325700> kapa.ai is still learning and improving, please let us know how it did by reacting below
environmental-roseOP•2y ago
I am using the NextJs router. Is there a way I could set up a generic provider to handle this for me at the app's entry point?