-
Notifications
You must be signed in to change notification settings - Fork 36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Difference between "apollo-client-nextjs" and pure "apollo-client" #306
Comments
These two will behave very differently. Your hand-written one will create one instance of
Generally, for all SSR purposes, we recommend to create a new instance of Note that in RSC, you cannot create an ApolloClient instance in a component, hold it in state and pass it down in a provider manually, as in RSC neither state nor context exist. Giving |
Hey @phryneas, I am using the same with WPGraphQL as my backend and the auth uses refreshToken. I have setup the Do I need to write two separate apollo setups i.e. one with
What if I do wanna share a single instance to make sure they all have the same session token (needed for cart sync)? Basically, the goal is to make apollo instance have the updated session token. Thanks, |
@kunalvirk Your code will run in three different places, probably at different times:
Unfortunately, by the nature of Next.js, token handling will be different in those three cases and you cannot share anything authentication-related between them - they run on different machines, at different times. There is technically no way to share any instance between them. I hope this info gives you a bit of a direction so you can find out in which of those situations, your token is not being refreshed as a starting point. |
I don't know if it makes sense but for this only nature of Next.js app router, I used redis for storing refresh tokens and every time a request starts to progress I reference it to the cache and set the cookie from auth link. This sometime result in different session tokens but more or less this works. I have started to miss page router. Thanks @phryneas |
Since there was no "discussion" section in repository, I wanted to open this topic to fill the gaps in my mind.
You see, I'm able to send query to my graphQL server like this
I'm using "apollo-client-nextjs" above. But, I can even send my queries by using plain "apollo-client" in my RSC like below.
This one, I'm not using "apollo-client-nextjs". Why should I use "apollo-client-nextjs" if I'm able to do it in plain "apollo-client" ?
What is the difference between "apollo-client-nextjs" and plain "apollo-client" at all ?
Thanks
The text was updated successfully, but these errors were encountered: