firebase / firebase/apphosting-adapters

NextJS - access __session cookie of Firebase hosting from middleware

Open
#76 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
478
Forks
1.5k
Avg merge
3d 22h
Merged PRs (30d)
2

Description

I'm using Firebase Auth and NextJS with Firebase hosting.

Goal is to redirect / rewrite based on whether user has signed in or not.

I set listen to IdTokenChange and set __session cookie.

```
// AuthUserContext.tsx
// listen to auth state change
useEffect(() => {
const onNext = async (user: User | null) => {
if (user) {
setUser(user);
const idToken = await user.getIdToken();

nookies.set(undefined, "__session", idToken, { path: "/" });
} else {
setUser(null);
nookies.set(undefined, "__session", "", { path: "/" });
}
};

const unsubscribe = onIdTokenChanged(auth, onNext);

return unsubscribe;
}, []);
```

I then try to get __session cookie from middleware

```
// middleware.ts
import { parseCookies } from "nookies";

export function middleware(request: NextRequest) {
const cookies = parseCookies();

console.log(cookies, "cookies"); // empty

const cookie = request.cookies.get("__session")?.value;

console.log(cookie, "cookie"); // undefined

// more code
}
```

Am I missing something? Or does middleware have no access to cookies?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.