From 2c7ad49c6f18363276327ae23c6b71dbaea14e03 Mon Sep 17 00:00:00 2001
From: Nico Domino Auth.js library
+ Authentication for the Web.
+
+
- Open Source. Full Stack. Own Your Data. -
- - - -## Overview - -Auth.js is a complete open-source authentication solution. - -This is an example application that shows how `@auth/core` is applied to a basic Gatsby app. We are showing how to configure the backend both as a [Vercel Function](https://vercel.com/docs/concepts/functions/introduction) for deployment to Vercel, and also for [Gatsby Functions](https://www.gatsbyjs.com/docs/reference/functions) for other platforms. - -The deployed version can be found at [`next-auth-gatsby-example.vercel.app`](https://next-auth-gatsby-example.vercel.app) - -### About Auth.js - -Auth.js is an easy-to-implement, full-stack (client/server) open-source authentication library originally designed for [Next.js](https://nextjs.org) and [Serverless](https://vercel.com), but this example shows how to use it in a Gatsby project. Our goal is to [support even more frameworks](https://github.com/nextauthjs/next-auth/issues/2294) in the future. - -Go to [authjs.dev](https://authjs.dev) for more information and documentation. - -> Auth.js is not officially associated with Vercel or Next.js.\_ - -## Getting Started - -### 1. Clone the repository and install dependencies - -``` -git clone https://github.com/nextauthjs/next-auth-gatsby-example.git -cd next-auth-gatsby-example -npm install -``` - -### 2. Configure your local environment - -Copy the .env.local.example file in this directory to .env.local (which will be ignored by Git): - -``` -cp .env.local.example .env.local -``` - -Add details for one or more providers (e.g. Google, Twitter, GitHub, Email, etc). - -#### Database - -A database is needed to persist user accounts and to support email sign in. However, you can still use Auth.js for authentication without a database by using OAuth for authentication. If you do not specify a database, [JSON Web Tokens](https://jwt.io/introduction) will be enabled by default. - -You **can** skip configuring a database and come back to it later if you want. - -For more information about setting up a database, please check out the following links: - -- Docs: [authjs.dev/reference/core/adapters](https://authjs.dev/reference/core/adapters) - -### 3. Configure Authentication Providers - -1. Review and update options in `nextauth.config.js` as needed. - -2. When setting up OAuth, in the developer admin page for each of your OAuth services, you should configure the callback URL to use a callback path of `{server}/api/auth/callback/{provider}`. - -e.g. For Google OAuth you would use: `http://localhost:3000/api/auth/callback/google` - -A list of configured providers and their callback URLs is available from the endpoint `/api/auth/providers`. You can find more information at [authjs.dev/reference/core/providers](https://authjs.dev/reference/core/providers). - -3. You can also choose to specify an SMTP server for passwordless sign in via email. - -### 4. Start the application - -To run your site locally, use: - -``` -npm run dev -``` - -To run it in production mode, use: - -``` -npm run build -npm run start -``` - -### 5. Preparing for Production - -Follow the [Deployment documentation](https://authjs.dev/getting-started/deployment) - -## Acknowledgements - - - - -Thanks to Vercel sponsoring this project by allowing it to be deployed for free for the entire Auth.js Team
- -## License - -ISC diff --git a/apps/playgrounds/gatsby/api/auth/[nextauth].js b/apps/playgrounds/gatsby/api/auth/[nextauth].js deleted file mode 100644 index 878b45b560..0000000000 --- a/apps/playgrounds/gatsby/api/auth/[nextauth].js +++ /dev/null @@ -1,9 +0,0 @@ -// Gatsby Functions are not yet supported on Vercel, so you'll need to use the root `api` folder. -import NextAuth from "next-auth" -import { authConfig } from "../../nextauth.config" - -export default async function handler(req, res) { - const { nextauth, provider, ...rest } = req.query - req.query = { nextauth: [nextauth, provider], ...rest } - return await NextAuth(req, res, authConfig) -} diff --git a/apps/playgrounds/gatsby/api/auth/[nextauth]/[provider].js b/apps/playgrounds/gatsby/api/auth/[nextauth]/[provider].js deleted file mode 100644 index 0a3e8dbc22..0000000000 --- a/apps/playgrounds/gatsby/api/auth/[nextauth]/[provider].js +++ /dev/null @@ -1,2 +0,0 @@ -// Vercel Functions for Gatsby currently do not support catch-all routes. -export { default } from "../[nextauth]" diff --git a/apps/playgrounds/gatsby/gatsby-browser.js b/apps/playgrounds/gatsby/gatsby-browser.js deleted file mode 100644 index 8498c61124..0000000000 --- a/apps/playgrounds/gatsby/gatsby-browser.js +++ /dev/null @@ -1,6 +0,0 @@ -import * as React from "react" -import { SessionProvider } from "next-auth/react" - -export const wrapRootElement = ({ element }) => ( -
- {session?.status !== "authenticated" && (
- <>
-
- You are not signed in
-
- {
- e.preventDefault()
- signIn()
- }}
- >
- Sign in
-
- >
- )}
- {session?.status === "authenticated" && (
- <>
- {session.data.user.image && (
-
- )}
-
- Signed in as
-
- {session.data.user.email}
- {session.data.user.name
- ? `(${session.data.user.name})`
- : null}
-
- {
- e.preventDefault()
- signOut()
- }}
- >
- Sign out
-
- >
- )}
-
- An example site to demonstrate how to use{" "} - Auth.js for authentication in Gatsby. -
- { - { - loading:Loading session...
, - authenticated:{JSON.stringify(session?.data, null, 2)}, - unauthenticated: "Please sign in", - }[session?.status ?? "loading"] - } -
- This is an example site to demonstrate how to use - Nuxt 3 with - Auth.js for authentication. -
-- This is a protected content. You can access this content because you are - signed in. -
-Session expiry: {{ session?.expires }}
-