rsnext/examples/with-iron-session
Vincent Voyer 84e47b82a5
docs(examples): with-iron-session logout must be called via POST (#22240)
1. Logout is better called in a POST request (avoids caching in most situations + avoids weird CSRF "logout attacks", i.e. can't be logged out by clicking on an email link)
2. We should wait for logout to complete before mutating the user, otherwise some weird race conditions might prevent swr to catch the right logged out state
2021-04-20 15:46:14 +00:00
..
components docs(examples): with-iron-session logout must be called via POST (#22240) 2021-04-20 15:46:14 +00:00
lib examples(iron-session): update fetch, env, UI, deps, and docs (#13756) 2020-06-04 13:12:52 -04:00
pages Update .now.sh to .vercel.app. (#22359) 2021-04-14 09:46:06 -05:00
public examples(iron-session): update fetch, env, UI, deps, and docs (#13756) 2020-06-04 13:12:52 -04:00
.env.development examples(iron-session): update fetch, env, UI, deps, and docs (#13756) 2020-06-04 13:12:52 -04:00
.env.production examples(iron-session): update fetch, env, UI, deps, and docs (#13756) 2020-06-04 13:12:52 -04:00
.gitignore Added .gitignore to examples that are deployed to vercel (#15127) 2020-07-16 10:52:23 -04:00
package.json Update authentication examples (#19330) 2020-12-29 12:43:47 -05:00
README.md Update .now.sh to .vercel.app. (#22359) 2021-04-14 09:46:06 -05:00
vercel.json Update instances of Now to Vercel where applicable (#13760) 2020-06-04 14:57:17 +00: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 useUser hook and swr module
  • Layout based on the user's logged-in/out status
  • Session data is signed and encrypted in a cookie

next-iron-session also supports:

  • Express / Connect middlewares
  • Multiple encryption keys (password) to allow for seamless updates or just password rotation

Online demo at https://next-iron-session.vercel.app/ 👀


Deploy your own

Deploy the example using Vercel:

Deploy with Vercel

How to use

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

Deploy it to the cloud with Vercel (Documentation).