跳到內容
從 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

使用 profile 回呼時,從 Apple 返回的使用者個人資料。

繼承

屬性

at_hash

at_hash: string;

aud

aud: string;

「受眾」已註冊宣告識別身分權杖的預期接收者。由於權杖是為您的應用程式而設計的,因此值是您開發者帳戶中的 client_id

auth_time

auth_time: number;

email

email: string;

一個代表使用者電子郵件地址的字串值。電子郵件地址是使用者的真實電子郵件地址或 Proxy 位址,具體取決於他們的私有電子郵件中繼服務狀態。

email_verified

email_verified: true | "true";

一個字串或布林值,表示服務是否已驗證電子郵件。此宣告的值永遠為 true,因為伺服器只會返回已驗證的電子郵件地址。此值可以是字串 ("true") 或布林值 (true)。

exp

exp: number;

「到期時間」已註冊宣告識別身分權杖到期的時間,以自 Epoch 以來的秒數計算,以 UTC 為單位。驗證權杖時,該值必須大於目前日期/時間。

iat

iat: number;

「發行於」已註冊宣告表示 Apple 發行身分權杖的時間,以自 Epoch 以來的秒數計算,以 UTC 為單位。

is_private_email

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

一個字串或布林值,表示使用者共用的電子郵件是否為 Proxy 位址。此值可以是字串 ("true""false") 或布林值 (truefalse)。

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(或不支援)、1(或不明)、2(或可能真實)。如需更多資訊,請參閱 ASUserDetectionStatus。此宣告僅在 iOS 14 及更高版本、macOS 11 及更高版本、watchOS 7 及更高版本、tvOS 14 及更高版本上存在;此宣告不存在或不支援基於 Web 的應用程式。

sub

sub: string;

主體註冊聲明會識別身分憑證的主體。由於此憑證是為您的應用程式設計的,因此其值為使用者的唯一識別碼。

transfer_sub

transfer_sub: string;

一個字串值,表示用於將使用者移轉到您的團隊的移轉識別碼。此聲明僅在您移轉應用程式後的 60 天移轉期間內存在。如需更多資訊,請參閱將新應用程式和使用者帶入您的團隊

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 和團隊 -2024