providers/apple
AppleNonConformUser
這是 Apple 首次讓使用者同意應用程式時發送的 user
查詢參數的形狀。
請參閱
屬性
email: string;
name
name: {
firstName: string;
lastName: string;
};
firstName
firstName: string;
lastName
lastName: string;
AppleProfile
使用 profile 回呼時,從 Apple 返回的使用者個人資料。
繼承
Record
<string
,any
>
屬性
at_hash
at_hash: string;
aud
aud: string;
「受眾」已註冊宣告識別身分權杖的預期接收者。由於權杖是為您的應用程式而設計的,因此值是您開發者帳戶中的 client_id
。
auth_time
auth_time: number;
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"
) 或布林值 (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(或不支援)、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 登入概述
- 使用 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 > |