rsnext/examples/with-cookie-auth
2019-11-27 11:40:58 -05:00
..
components Improve linting rules to catch more errors (#9374) 2019-11-10 19:24:53 -08:00
pages Improve linting rules to catch more errors (#9374) 2019-11-10 19:24:53 -08:00
utils Fix(9312) - Fix redirect logic for with-cookie-auth (#9413) 2019-11-14 10:58:22 -05:00
next.config.js Improve linting rules to catch more errors (#9374) 2019-11-10 19:24:53 -08:00
package.json Auth example with api routes (#8118) 2019-07-25 18:52:41 -05:00
README.md Add the deploy button to compatible examples (#9547) 2019-11-27 11:40:58 -05:00

Example app utilizing cookie-based authentication

Deploy your own

Deploy the example using ZEIT Now:

Deploy with ZEIT Now

How to use

Using create-next-app

Download create-next-app to bootstrap the example:

npm i -g create-next-app
create-next-app --example with-cookie-auth with-cookie-auth-app

Download manually

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

Run locally

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

Deploy it to the cloud with now (download):

now

The idea behind the example

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.