rsnext/examples/with-iron-session
Vincent Voyer 009369a9aa
docs(examples): add with-iron-session example (#10973)
This example creates an authentication system that uses a **signed and encrypted cookie to store session data**. It relies on [`next-iron-session`](https://github.com/vvo/next-iron-session).

It uses current best practices as for authentication in the Next.js ecosystem:
1. **no `getInitialProps`** to ensure every page is static
2. **`useUser` hook** together with [`swr`](https://swr.now.sh/) for data fetching

Features:
- Logged in status synchronized between browser windows/tabs
- Layout based on logged in status
- All pages are static
- Session data is signed and encrypted in a cookie
2020-04-07 10:47:00 -04:00
..
components docs(examples): add with-iron-session example (#10973) 2020-04-07 10:47:00 -04:00
lib docs(examples): add with-iron-session example (#10973) 2020-04-07 10:47:00 -04:00
pages docs(examples): add with-iron-session example (#10973) 2020-04-07 10:47:00 -04:00
now.json docs(examples): add with-iron-session example (#10973) 2020-04-07 10:47:00 -04:00
package.json docs(examples): add with-iron-session example (#10973) 2020-04-07 10:47:00 -04:00
README.md docs(examples): add with-iron-session example (#10973) 2020-04-07 10:47:00 -04:00

Example application using next-iron-session

This example creates an authentication system that uses a signed and encrypted cookie to store session data. It relies on next-iron-session.

It uses current best practices for authentication in the Next.js ecosystem.

Features:

  • Static Generation (SG), recommended example
  • Server-side Rendering (SSR) example in case you need it
  • Logged in status synchronized between browser windows/tabs using withUser hook and swr module
  • Layout based on logged-in status
  • Session data is signed and encrypted in a cookie

This example creates an authentication system that uses a signed and encrypted cookie to store session data. It relies on next-iron-session.

It uses current best practices for authentication in the Next.js ecosystem.

Features:

  • Static Generation (SG), recommended example
  • Server-side Rendering (SSR) example in case you need it
  • Logged in status synchronized between browser windows/tabs using withUser hook and swr module
  • Layout based on the user's logged-in/out status
  • Session data is signed and encrypted in a cookie

Online demo at https://next-iron-session.now.sh/ 👀


Deploy your own

Deploy the example using ZEIT Now:

Deploy with ZEIT Now

How to use

Using create-next-app

Execute create-next-app with npm or Yarn to bootstrap the example:

npx create-next-app --example with-iron-session with-iron-session-app
# or
yarn create next-app --example with-iron-session with-iron-session-app

Download manually

Download the example:

curl https://codeload.github.com/zeit/next.js/tar.gz/canary | tar -xz --strip=2 next.js-canary/examples/with-iron-session
cd with-iron-session

Install it and run:

npm install
npm run dev
# or
yarn
yarn dev

Deploy it to the cloud with ZEIT Now (Documentation).