← ClaudeAtlas

authenticationlisted

Implement iOS authentication patterns including Sign in with Apple (ASAuthorizationAppleIDProvider, ASAuthorizationController, ASAuthorizationAppleIDCredential), credential state checking, identity token validation, ASWebAuthenticationSession for OAuth and third-party auth flows, ASAuthorizationPasswordProvider for AutoFill credential suggestions, and biometric authentication with LAContext. Use when implementing Sign in with Apple, handling Apple ID credentials, building OAuth login flows, integrating Password AutoFill, checking credential revocation state, or validating identity tokens server-side.
dpearson2699/swift-ios-skills · ★ 730 · API & Backend · score 80
Install: claude install-skill dpearson2699/swift-ios-skills
# Authentication Implement authentication flows on iOS using the AuthenticationServices framework, including Sign in with Apple, OAuth/third-party web auth, Password AutoFill, and biometric authentication. ## Contents - [Sign in with Apple](#sign-in-with-apple) - [Credential Handling](#credential-handling) - [Credential State Checking](#credential-state-checking) - [Token Validation](#token-validation) - [Existing Account Setup Flows](#existing-account-setup-flows) - [ASWebAuthenticationSession (OAuth)](#aswebauthenticationsession-oauth) - [Password AutoFill Credentials](#password-autofill-credentials) - [Biometric Authentication](#biometric-authentication) - [SwiftUI SignInWithAppleButton](#swiftui-signinwithapplebutton) - [Common Mistakes](#common-mistakes) - [Review Checklist](#review-checklist) - [References](#references) ## Sign in with Apple Add the "Sign in with Apple" capability in Xcode before using these APIs. ### UIKit: ASAuthorizationController Setup ```swift import AuthenticationServices final class LoginViewController: UIViewController { func startSignInWithApple() { let provider = ASAuthorizationAppleIDProvider() let request = provider.createRequest() request.requestedScopes = [.fullName, .email] let controller = ASAuthorizationController(authorizationRequests: [request]) controller.delegate = self controller.presentationContextProvider = self controller.performRequests() } } extension Lo