File: github.md | Updated: 11/15/2025
š NextAuth.js is now part of Better Auth !
Version: v4
On this page
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 })]...
danger
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.