(NextJS SSR) How to best check for a logged in user multiple client components deep?
- 0
- Auth
- Web
- Cloud
I have a client component deep in my navbar that needs to change depending on if the user is logged in or not. Using NextJS, I would normally check if user is authenticated from the parent server component like here: https://appwrite.io/docs/tutorials/nextjs-ssr-auth/step-4
However, since I need to check for the user many layers deep and update the component whenever the user logs in / logs out, I am at a loss on how to do this, since you cannot use context in a server component.
I thought about importing the getLoggedInUser
function from inside the component and do something like this
const [isLoggedIn, setIsLoggedIn] = useState(false)
useEffect(() => {
const fetchLoggedInUser = async () => {
const user = await getLoggedInUser()
setIsLoggedIn(!!user)
}
fetchLoggedInUser()
}, [])
But this only runs on the first render, and running this e.g. on every route change seems very inefficient. How would you do this?
Recommended threads
- Login stopped working on Refine
Hi, I create a project with refine and Appwrite. I try first time the login and worked, but since yesterday the login stopped working and I didn't receive any e...
- Validate on domain with OAuth login
I want to validate an email address on the domain before an account creation. I am using a organization level OAuth from microsoft, but i only want to allow use...
- linkedin api error
I want to fetch profile data of authorized user from Linkedin for the project im working on. I'm using appwrite for auth which is provding access token which t...