コンテンツへスキップ
NextAuth.js v4 からの移行ですか?こちらを読んでください 移行ガイド.

providers/apple

Appleとの組み込みサインイン統合。

AppleNonConformUser

これは、ユーザーがアプリに最初に同意したときに、Appleが送信するuserクエリパラメータの形状です。

参照

https://developer.apple.com/documentation/sign_in_with_apple/request_an_authorization_to_the_sign_in_with_apple_server#4066168

プロパティ

email

email: string;

name

name: {
  firstName: string;
  lastName: string;
};
firstName
firstName: string;
lastName
lastName: string;

AppleProfile

プロファイルコールバックを使用する際に、Appleから返されるユーザープロファイル。

拡張

プロパティ

at_hash

at_hash: string;

aud

aud: string;

登録済みのオーディエンス要求は、アイデンティティトークンが意図されている受信者を識別します。トークンはアプリケーションを対象としているため、値は開発者アカウントのclient_idです。

auth_time

auth_time: number;

email

email: string;

ユーザーのメールアドレスを表す文字列値。メールアドレスは、ユーザーの実際のメールアドレスか、プライベートメールリレーサービスのステータスによってプロキシアドレスのいずれかです。

email_verified

email_verified: true | "true";

サービスがメールを検証したかどうかを示す文字列またはブール値。サーバーは検証済みのメールアドレスのみを返すため、この要求の値は常にtrueです。値は文字列("true")またはブール値(true)のいずれかになります。

exp

exp: number;

登録済みの有効期限時刻は、アイデンティティトークンの有効期限が切れる時刻(UTCでのEpochからの秒数)を示します。トークンを検証する際に、値は現在の日時よりも大きくする必要があります。

iat

iat: number;

発行済み時間登録済み要求は、Appleがアイデンティティトークンを発行した時間(UTCでのEpochからの秒数)を示します。

is_private_email

is_private_email: boolean | "true" | "false";

ユーザーが共有したメールがプロキシアドレスであるかどうかを示す文字列またはブール値。値は文字列("true"または"false")またはブール値(trueまたはfalse)のいずれかになります。

iss

iss: "https://appleid.apple.com";

登録済みの発行者要求は、アイデンティティトークンを発行したプリンシパルを識別します。Appleがトークンを生成するため、値はhttps://appleid.apple.comです。

nonce

nonce: string;

クライアントセッションとアイデンティティトークンを関連付けるために使用される文字列値。この値はリプレイ攻撃を軽減し、認証リクエスト中に渡された場合にのみ存在します。

nonce_supported

nonce_supported: boolean;

トランザクションがnonceをサポートするプラットフォーム上にあるかどうかを示すブール値です。認証リクエストでnonceを送信したが、アイデンティティトークンにnonceクレームが見当たらない場合は、このクレームを確認して、どのように処理するかを判断してください。このクレームがtrueを返す場合は、nonceを必須として扱い、トランザクションを失敗させる必要があります。それ以外の場合は、nonceをオプションとして扱って処理を続行できます。

real_user_status

real_user_status: 0 | 1 | 2;

ユーザーが実在の人物である可能性を示す整数値です。このクレームの値を使用して、不正行為を軽減してください。可能な値は、0(またはUnsupported)、1(またはUnknown)、2(またはLikelyReal)です。詳細については、ASUserDetectionStatus を参照してください。このクレームは、iOS 14 以降、macOS 11 以降、watchOS 7 以降、tvOS 14 以降でのみ存在します。Web ベースのアプリでは、このクレームは存在せず、サポートされていません。

sub

sub: string;

登録済みクレームのサブジェクトは、アイデンティティトークンのサブジェクトであるプリンシパルを識別します。このトークンはアプリケーション向けであるため、値はユーザーの一意の識別子です。

transfer_sub

transfer_sub: string;

ユーザーをチームに移行するために使用される移行識別子を表す文字列値です。このクレームは、アプリを移行してから60日間の移行期間中のみ存在します。詳細については、Bringing New Apps and Users into Your Team を参照してください。

user?

optional user: AppleNonConformUser;

default()

default(config): OAuthConfig<AppleProfile>

セットアップ

コールバックURL

https://example.com/auth/callback/apple

構成

import Apple from "@auth/core/providers/apple"
...
providers: [
  Apple({
    clientId: env.AUTH_APPLE_ID,
    clientSecret: env.AUTH_APPLE_SECRET,
  })
]
...

リソース

注意

  • Appleはlocalhost/http URLをサポートしていません。HTTPSを使用したライブURLのみを使用できます。
  • AppleはクライアントシークレットがJWTである必要があります。CLIコマンドnpx auth add appleを提供して、生成を支援します。これにより、必要な情報が求められ、最後にAUTH_APPLE_IDAUTH_APPLE_SECRET.envファイルに追加されます。
  • Appleは最小限のユーザー情報を提供します。ユーザーのメールと名前を返しますが、ユーザーがアプリに同意するのは初回のみです。
  • Appleプロバイダーは、複数のデプロイメント(プレビューデプロイメントなど)で同じクライアントを設定することをサポートしていません。
  • Appleプロバイダーには、デフォルト構成が付属しています。ユースケースに合わせてデフォルトをオーバーライドするには、組み込みのOAuthプロバイダーのカスタマイズを確認してください。

ヘルプ

デフォルト構成にバグを見つけたと思われる場合は、問題を提起できます。

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

パラメーター

パラメーター
configOAuthUserConfig<AppleProfile>

戻り値

OAuthConfig<AppleProfile>

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