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)`.
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. :::