providers/apple
AppleNonConformUser
これは、ユーザーがアプリに最初に同意したときに、Appleが送信するuser
クエリパラメータの形状です。
参照
プロパティ
email: string;
name
name: {
firstName: string;
lastName: string;
};
firstName
firstName: string;
lastName
lastName: string;
AppleProfile
プロファイルコールバックを使用する際に、Appleから返されるユーザープロファイル。
拡張
Record
<string
,any
>
プロパティ
at_hash
at_hash: string;
aud
aud: string;
登録済みのオーディエンス要求は、アイデンティティトークンが意図されている受信者を識別します。トークンはアプリケーションを対象としているため、値は開発者アカウントのclient_id
です。
auth_time
auth_time: number;
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でサインイン 概要
- Appleでサインイン REST API
- Apple IDサーバーから ユーザー情報を取得する方法
- OAuthの詳細
- クライアントシークレットの作成
注意
- Appleはlocalhost/http URLをサポートしていません。HTTPSを使用したライブURLのみを使用できます。
- AppleはクライアントシークレットがJWTである必要があります。CLIコマンド
npx auth add apple
を提供して、生成を支援します。これにより、必要な情報が求められ、最後にAUTH_APPLE_ID
とAUTH_APPLE_SECRET
が.env
ファイルに追加されます。 - Appleは最小限のユーザー情報を提供します。ユーザーのメールと名前を返しますが、ユーザーがアプリに同意するのは初回のみです。
- Appleプロバイダーは、複数のデプロイメント(プレビューデプロイメントなど)で同じクライアントを設定することをサポートしていません。
- Appleプロバイダーには、デフォルト構成が付属しています。ユースケースに合わせてデフォルトをオーバーライドするには、組み込みのOAuthプロバイダーのカスタマイズを確認してください。
ヘルプ
デフォルト構成にバグを見つけたと思われる場合は、問題を提起できます。
Auth.jsは仕様を厳密に遵守しており、プロバイダーによる仕様からの逸脱については責任を負いません。問題を提起することはできますが、問題が仕様の非準拠である場合、解決を追求しない可能性があります。ディスカッションでさらにヘルプを求めることができます。
パラメーター
パラメーター | 型 |
---|---|
config | OAuthUserConfig <AppleProfile > |