コンテンツへスキップ
NextAuth.js v4 からの移行ですか?以下をご覧ください 移行ガイド.

providers/google

組み込みの Google 統合。

GoogleProfile

拡張

プロパティ

aud

aud: string;

azp

azp: string;

email

email: string;

email_verified

email_verified: boolean;

exp

exp: number;

family_name?

optional family_name: string;

given_name

given_name: string;

hd?

optional hd: string;

iat

iat: number;

iss

iss: string;

jti?

optional jti: string;

locale?

optional locale: string;

name

name: string;

nbf?

optional nbf: number;

picture

picture: string;

sub

sub: string;

default()

default<P>(options): OAuthConfig<P>

Google ログインをページに追加します。

セットアップ

コールバック URL

https://example.com/api/auth/callback/google

設定

import { Auth } from "@auth/core"
import Google from "@auth/core/providers/google"
 
const request = new Request(origin)
const response = await Auth(request, {
  providers: [
    Google({ clientId: GOOGLE_CLIENT_ID, clientSecret: GOOGLE_CLIENT_SECRET }),
  ],
})

リソース

注意事項

デフォルトでは、Auth.js は Google プロバイダーが Open ID Connect 仕様に基づいていると想定しています。

認証情報の作成時に使用される「承認されたリダイレクト URI」には、完全なドメインを含め、コールバック パスで終わる必要があります。例えば:

  • 本番環境の場合:https://{YOUR_DOMAIN}/api/auth/callback/google
  • 開発環境の場合:http://localhost:3000/api/auth/callback/google
⚠️

Google は、ユーザーが最初にサインインしたときにのみ、アプリケーションにリフレッシュ トークンを提供します。

Google にリフレッシュ トークンを再発行させるには、ユーザーが自分のアカウントからアプリケーションを削除し、再度サインインする必要があります:https://myaccount.google.com/permissions

または、サインイン時に常にリフレッシュ トークンが提供されるように、authorizationparams オブジェクトでオプションを渡すこともできます。ただし、これにより、すべてのユーザーがサインインするたびに、アプリケーションにアクセスを許可するかどうかを確認する必要があります。

Google アカウントのリフレッシュ トークンまたはアクセス トークンへのアクセスが必要で、ユーザー アカウントを永続化するためにデータベースを使用していない場合は、これが必要になる可能性があります。

const options = {
  providers: [
    Google({
      clientId: process.env.GOOGLE_ID,
      clientSecret: process.env.GOOGLE_SECRET,
      authorization: {
        params: {
          prompt: "consent",
          access_type: "offline",
          response_type: "code"
        }
      }
    })
  ],
}
💡

Google はまた、OAuth プロファイルで email_verified ブール値プロパティを返します。

このプロパティを使用して、特定のドメインで認証されたアカウントを持つユーザーにアクセスを制限できます。

const options = {
  ...
  callbacks: {
    async signIn({ account, profile }) {
      if (account.provider === "google") {
        return profile.email_verified && profile.email.endsWith("@example.com")
      }
      return true // Do different verification for other providers that don't have `email_verified`
    },
  }
  ...
}
💡

Google プロバイダーには、デフォルト設定が付属しています。ユースケースに合わせてデフォルトをオーバーライドするには、組み込みの OAuth プロバイダーのカスタマイズを確認してください。

免責事項 デフォルト設定にバグがあると思われる場合は、問題を提起できます。

Auth.js は仕様を厳密に遵守しており、プロバイダーによる仕様からの逸脱については責任を負うことはできません。問題を提起することはできますが、問題が仕様の不遵守である場合は、解決を追求しない可能性があります。ディスカッションでさらにヘルプを求めることができます。

型パラメータ

型パラメータ
P extends GoogleProfile

パラメータ

パラメータ
optionsOAuthUserConfig<P>

戻り値

OAuthConfig<P>

Auth.js © Balázs Orbán and Team -2024