Sådan bruges Touch ID til et hurtigere og lettere login til din app

Det er en almindelig bemærkning, at brugere dropper lidt af på din login-skærm. Sådan tackle jeg min facebook-afhængighed. Denne tutorial lærer dig, hvordan du bruger Touch ID til en hurtigere og lettere login. Jeg vil snart tage dig gennem trinnene, bare lad mig orientere dig lidt.

De fleste apps bruger Touch ID som en andengradsgodkendelse. Denne tutorial handler IKKE om at tilvejebringe en andengradsgodkendelse (selvom du også kan gøre det, hvis du læser denne artikel). Det handler om at bruge Touch ID til at få denne server op til at logge ind på brugeren.

Hvordan får du nu brugerens legitimationsoplysninger fra deres tommelfingerprint for at få serveren til at ringe til? Det er her nøgleringstjenesten kommer ind. Når brugeren tilmelder sig eller logger ind på din app for første gang, skal du gemme legitimationsoplysningerne til din apps nøglering. Næste gang, når brugeren logger ud og derefter besøger login-skærmen igen, skal du blinke en popup, der beder dem om at logge ind ved hjælp af Touch ID. Når brugeren giver et gyldigt Touch ID, skal du hente de brugeroplysninger, du har gemt tidligere i nøglering, foretage dit API-opkald, og Boom! .

Så der er to trin involveret her:

  • Først skal du gemme brugerens legitimationsoplysninger på nøgleringe. Du kan gøre dette, når brugeren tilmelder sig, eller når de logger på din app for første gang.
  • For det andet skal du bruge Touch ID til at bekræfte brugeren og derefter hente deres legitimationsoplysninger fra nøgleringstjenesten.

Jeg bruger KeychainPasswordItem, en dejlig indpakning over Keychain tilgængelig på Developer.apple.com her. De har et meget godt, detaljeret eksempel på, hvordan man bruger denne generiske nøglering. Gå og kig.

Som en del af det første trin skal du bruge opkaldsmetoden nedenfor med brugerens e-mail som konto og adgangskode, når brugeren tilmelder sig og logger ind.

Vi lagrer brugerens e-mail til UserDefaults, der skal bruges senere. Det ville være bedre, hvis du blinker en popup for at spørge brugerens tilladelse til at bruge denne funktion. Jeg springer over den del til denne tutorial.

Brug Touch ID for at få adgang til nøglering

For at bruge Touch ID skal du først tilføje LocalAuthentication-rammen til dine projektbinarier. Du kan gøre dette ved at gå til Projekt> Byg faser> Link binært med biblioteker:

Importer derefter LocalAuthentication-rammen i din loginvisningscontroller.

import LocalAuthentication

Vi har udfyldt vores brugernavn-tekstfelt med den brugerkonto-e-mail, vi gemte tidligere til UserDefaults.

Dernæst skal vi kontrollere, om godkendelse er mulig på den aktuelle enhed. Tjek følgende kode:

Vi påkalder autentificering af brugerUsingTouchId () i viewDidAppear (). LAContext er en underklasse af NSObject og repræsenterer vores nuværende godkendelseskontekst. Hvis autentificering nu er mulig, skal du validere Touch ID's ægthed ved at kalde evaluPolicy ()

context.evaluatePolicy () giver os Touch ID-pop-up med vores sidst åbne brugernavn, som vi gav som vores localized Årsag i metoden evaluPolicy ().

Dette afslutter del 1 i trin 2: Få brugeren til at autentificere ved hjælp af Touch ID. Herefter bruger Touch ID til at få adgang til nøglering, hvor vi gemmer eller henter brugeroplysninger til login.

Når brugeren leverer et gyldigt Touch ID, skal vi indlæse adgangskoden fra nøglering og foretage vores POST-opkald for at logge ind på brugeren.

hvis authSuccessful {self.loadPasswordFromKeychainAndAuthenticateUser (lastAccessedUserName)
}

Det er det! Du kan opgradere din godkendelsesramme til at understøtte flere konti. Når du har verificeret Touch ID's ægthed, skal du blinke en popup og bede brugeren om at vælge den konto, de ønsker login. Hent derefter brugerens legitimationsoplysninger svarende til den konto fra Nøglering. Tak for at have læst!