Files
cozsweet-frontend-nextjs/docs/nextauth/docs/providers/github.md
T
admin d70e61f92e refactor(auth): switch to class-based social login and v4 route handler
Migrate from function-based social login helpers (`facebookLogin`, `googleLogin`)
to class-based services (`new FacebookLogin().signIn()`, `new GoogleLogin().signIn()`),
updating call sites in `AuthFacebookPanel` and `SplashButton` with try/catch error
handling. The NextAuth route handler is also refactored to the v4 pattern, importing
pre-built `GET` / `POST` exports from `@/lib/auth/nextauth` instead of constructing
the handler inline with `NextAuth(authOptions)`.
2026-06-10 15:34:52 +08:00

1.3 KiB

id, title
id title
github GitHub

GitHub returns a field on Account called refresh_token_expires_in which is a number. See their docs. Remember to add this field to your database schema, in case if you are using an Adapter.

Documentation

https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps

Configuration

https://github.com/settings/apps

:::info When creating a GitHub App, make sure to set the "Email addresses" account permission to read-only in order to access private email addresses on GitHub. :::

Options

The GitHub Provider comes with a set of default options:

You can override any of the options to suit your own use case.

Example

import GitHubProvider from "next-auth/providers/github";
...
providers: [
  GitHubProvider({
    clientId: process.env.GITHUB_ID,
    clientSecret: process.env.GITHUB_SECRET
  })
]
...

:::warning Only allows one callback URL per Client ID / Client Secret. :::

:::tip Email address is always returned, even if the user doesn't have a public email address on their profile. :::