AuthenticationServices — Foundations Skill
Purpose
Route Sign in with Apple implementation tasks to the minimum required
AuthenticationServices Knowledge Contracts. v1 scope is the
ASAuthorizationAppleIDProvider/ASAuthorizationController Sign in with
Apple flow only — no Password AutoFill/credential-provider extensions,
no Passkeys/WebAuthn APIs, no server-side identity-token verification.
Routing
Load only the contracts relevant to the task. All paths relative to knowledge/authenticationservices/.
- Building an
ASAuthorizationAppleIDRequestviacreateRequest(), settingrequestedScopes, drivingASAuthorizationControllerthrough its delegate/presentation-context protocols, or readinguser/fullName/email/identityToken/authorizationCode/ASAuthorizationErrorfrom the result -> sign-in-with-apple-request-and-credential.md - Generating/hashing a nonce, or forwarding
identityToken/authorizationCodeto a backend -> nonce-and-identity-token-verification.md - Calling
getCredentialState(forUserID:), branching on.authorized/.revoked/.notFound/.transferred, or observingcredentialRevokedNotification-> credential-state-and-revocation.md - Deciding what to persist for a signed-in session, or sign-out behavior -> session-persistence-and-sign-out.md
Never load more than the contracts relevant to the specific question.
Stop Conditions
Stop and report if the requested topic has no matching Knowledge Contract in knowledge/authenticationservices/ — do not guess or fall back to general knowledge.
- Password AutoFill / credential-provider extensions
(
ASCredentialProviderExtension,ASCredentialProviderViewController) — Deferred - Passkeys / WebAuthn (
ASAuthorizationPlatformPublicKeyCredentialProvider,ASAuthorizationSecurityKeyPublicKeyCredentialProvider) — Deferred - Server-side JWT signature/claims verification of the identity token — Excluded, a backend responsibility this kit does not cover
- "Sign in with Apple" button UI/HIG design — owned by
human-interface-guidelines - Sign-in terminology and wording — owned by
style-guide - General Keychain storage/CRUD — owned by
security
Composing these with this Skill is workflow.authentication's job.