Nuxt session middleware to get a persistent session per app user, e.g., to store data across multiple requests. The nuxt session module provides the useSession() composable out of the box and sets up API endpoints to interact with your session to make working with sessions feel like a breeze.
I use mongodb driver for storageOptions but I think this would probably happen with any asyn storage. The problem I describe here does not happen when using memory storage.
I have 2 requests to my api, called in a sequence. First request modifies the session, second request reads it.
When session value is read in endpoint2, the changes made in endpoint1 are absent.
I can mitigate that as a workaround doing something like:
await fetch("endpoint1");
await new Promise((resolve) => setTimeout(resolve, 2000));
await fetch("endpoint2");
I ended up using an other workaround, that is overwrite the session in the database myself instead of waiting for the plugin to do it, it solves my problem but may create other issues.
event.res.on('finish', async () => {
// Session id may not exist if session was deleted
const session = await getSession(event)
if (!session) {
return
}
await setStorageSession(session.id, event.context.session)
})
It looks like h3 sends the response before the callbacks on the finished events are done so I'm not sure what to do about that.
Describe the bug
Using an async storage (in my case mongodb), when calling 2 requests in a sequence, first request modifies the session, the second reads it, data is not updated in the session in request 2.
Environment
Build Modules: -
Reproduction
I use mongodb driver for storageOptions but I think this would probably happen with any asyn storage. The problem I describe here does not happen when using memory storage.
I have 2 requests to my api, called in a sequence. First request modifies the session, second request reads it.
When session value is read in endpoint2, the changes made in endpoint1 are absent.
I can mitigate that as a workaround doing something like:
I ended up using an other workaround, that is overwrite the session in the database myself instead of waiting for the plugin to do it, it solves my problem but may create other issues.
It looks like h3 sends the response before the callbacks on the finished events are done so I'm not sure what to do about that.
Describe the bug
Using an async storage (in my case mongodb), when calling 2 requests in a sequence, first request modifies the session, the second reads it, data is not updated in the session in request 2.
Additional context
No response
Logs
No response