In this example, we authenticate users and store a token in a cookie. The example only shows how the user session works, keeping a user logged in between pages.
This example is backend agnostic and uses isomorphic-unfetch to do the API calls on the client and the server.
The repo includes a minimal passwordless backend built with the new API Routes support (pages/api
), Micro and the GitHub API. The backend allows the user to log in with their GitHub username.
Session is synchronized across tabs. If you logout your session gets removed on all the windows as well. We use the HOC withAuthSync
for this.
The helper function auth
helps to retrieve the token across pages and redirects the user if not token was found.
Deploy the example using ZEIT Now:
Execute create-next-app
with npm or Yarn to bootstrap the example:
npm init next-app --example with-cookie-auth with-cookie-auth-app
# or
yarn create next-app --example with-cookie-auth with-cookie-auth-app
Download the example or clone the repo:
curl https://codeload.github.com/zeit/next.js/tar.gz/canary | tar -xz --strip=2 next.js-canary/examples/with-cookie-auth
cd with-cookie-auth
After you clone the repository you can install the dependencies, run yarn dev
and start hacking! You'll be able to see the application running locally as if it were deployed.
$ cd with-cookie-auth
$ (with-cookie-auth/) yarn install
$ (with-cookie-auth/) yarn dev
Deploy it to the cloud with ZEIT Now (Documentation).