providers/google
GoogleProfile
拡張
Record
<string
,any
>
プロパティ
aud
aud: string;
azp
azp: string;
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
または、サインイン時に常にリフレッシュ トークンが提供されるように、authorization
の params
オブジェクトでオプションを渡すこともできます。ただし、これにより、すべてのユーザーがサインインするたびに、アプリケーションにアクセスを許可するかどうかを確認する必要があります。
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 プロバイダーのカスタマイズを確認してください。
型パラメータ
型パラメータ |
---|
P extends GoogleProfile |
パラメータ
パラメータ | 型 |
---|---|
options | OAuthUserConfig <P > |
戻り値
OAuthConfig
<P
>