Wachtwoordloze authenticatie slaat over met behulp van een wachtwoord voor registratie of login. In plaats daarvan wordt gebruikersverificatie bevestigd met een eenmalige SMS-verificatiecode die naar de telefoon van de gebruiker wordt verzonden of een eenmalige link naar hun e-mailadres.
In deze quicktip-zelfstudie laat ik je zien hoe je Account Kit van Facebook gebruikt voor wachtwoordloze authenticatie in je Android-app. Uw gebruikers registreren en loggen in met hun telefoonnummer of een e-mailadres. Gebruikers hoeven niet eens een Facebook-account te hebben om te worden geverifieerd.
Niet alleen dat, maar Account Kit is eenvoudig te implementeren en voorkomt dat u moeizaam een inlogsysteem moet bouwen.
Het volgende diagram moet duidelijk maken hoe Account Kit werkt.
De authenticatie vindt plaats in een reeks uitwisselingen tussen de gebruiker en de app. Eerst start de gebruiker de login, misschien door de app op hun telefoon te laden. Vervolgens wordt een verificatiecode verzonden naar de sms van de gebruiker of wordt er een eenmalige link per e-mail verzonden. Daarna, als de gebruiker de validatiecode invoert of op de link klikt, worden deze geverifieerd voor de app.
Een andere leuke functie van Facebook Account Kit is dat wanneer uw gebruiker zijn of haar telefoonnummer invoert in de app, Account Set een poging zal doen om het te matchen met het telefoonnummer dat is gekoppeld aan het Facebook-profiel van de gebruiker. Als de gebruiker is aangemeld bij de Android Facebook-app en de telefoonnummers overeenkomen, slaat de accountkit het verzenden van de sms-verificatiecode over en wordt de gebruiker naadloos meer aangemeld.
Als u accountkit wilt gaan gebruiken, heeft u het volgende nodig:
Ga naar het dashboard van uw app, klik op de Voeg product toe knop en selecteer Account uitrusting. Klik vervolgens op de Begin om Account Set toe te voegen. Wat u ziet, is de instellingenconfiguratie voor Account Kit.
Voeg de afhankelijkheid toe met de nieuwste versie van de SDK van de accountkit in uw build.gradle bestand en synchroniseer uw project.
repositories jcenter () afhankelijkheden compile 'com.facebook.android:account-kit-sdk:4.+'
Voeg uw Facebook-app-ID, Accountkit toeclienttoken (dit is beschikbaar op het dashboard met accountkitsinstellingen) en de INTERNET
toestemming voor de AndroidManifest.xml.
Voeg uw app-ID en Account Kit-clienttoken toe aan uw strings.xml het dossier.
YourAPPId YourAccountKitClientToken
Voeg ook het Accountkit-thema toe aan uw stijlen.xml.
Maak in de klasse Application de SDK's (vergeet niet om de SDK op te nemen) android: naam
in uw AndroidManifest.xml).
public class MyApplication breidt Application uit @Override public void onCreate () super.onCreate (); AccountKit.initialize (getApplicationContext ());
We moeten een aparte handler schrijven voor de sms-en e-mailaanmeldingsverificatiestromen.
Voor sms, op regel 5, specificeren we het login-type LoginType.PHONE
.
public void onSMSLoginFlow (View view) final Intent intent = new Intent (this, AccountKitActivity.class); AccountKitConfiguration.AccountKitConfigurationBuilder-configuratieBuilder = nieuwe AccountKitConfiguration.AccountKitConfigurationBuilder (LoginType.PHONE, AccountKitActivity.ResponseType.CODE); // or .ResponseType.TOKEN // ... voer extra configuratie uit ... intent.putExtra (AccountKitActivity.ACCOUNT_KIT_ACTIVITY_CONFIGURATION, configurationBuilder.build ()); startActivityForResult (opzet, 101);
Voor e-mail, op regel 5, specificeren we het login-type LoginType.EMAIL
.
public void onEmailLoginFlow (View view) final Intent intent = new Intent (this, AccountKitActivity.class); AccountKitConfiguration.AccountKitConfigurationBuilder-configuratieBuilder = nieuwe AccountKitConfiguration.AccountKitConfigurationBuilder (LoginType.EMAIL, AccountKitActivity.ResponseType.CODE); // or .ResponseType.TOKEN // ... voer extra configuratie uit ... intent.putExtra (AccountKitActivity.ACCOUNT_KIT_ACTIVITY_CONFIGURATION, configurationBuilder.build ()); startActivityForResult (opzet, 101);
Hier is een eenvoudige lay-out voor een scherm met knoppen om in te loggen met sms of e-mail.
Wanneer een gebruiker probeert in te loggen, ontvangen we een antwoord in de onActivityResult ()
methode. In deze methode kunnen we succesvolle, geannuleerde en mislukte authenticaties afhandelen.
@Override beschermde leegte onActivityResult (laatste int requestCode, uiteindelijke int resultCode, uiteindelijke Intent-gegevens) super.onActivityResult (requestCode, resultCode, data); if (requestCode == 101) // bevestig dat dit antwoord overeenkomt met uw verzoek AccountKitLoginResult loginResult = data.getParcelableExtra (AccountKitLoginResult.RESULT_KEY); String toastMessage; if (loginResult.getError ()! = null) toastMessage = loginResult.getError (). getErrorType (). getMessage (); showErrorActivity (loginResult.getError ()); else if (loginResult.wasCancelled ()) toastMessage = "Login geannuleerd"; else if (loginResult.getAccessToken ()! = null) toastMessage = "Succes:" + loginResult.getAccessToken (). getAccountId (); else toastMessage = String.format ("Succes:% s ...", loginResult.getAuthorizationCode (). subtring (0, 10)); // Als u een autorisatiecode hebt, haalt u deze op uit // loginResult.getAuthorizationCode () // en geeft u deze door aan uw server en ruilt u deze in voor een toegangstoken. // Succes! Start je volgende activiteit ... goToMyLoggedInActivity (); // Verlaag het resultaat op een gepaste manier naar uw gebruiker. Toast.makeText (this, toastMessage, Toast.LENGTH_LONG) .show ();
Nu kunnen we onze app gebruiken om de SMS- en e-mailaanmeldingsstromen te testen!
Houd er rekening mee dat de JavaScript-SDK van de accountkit geen ondersteuning biedt voor WebView-aanmelding, dus u kunt mensen niet aanmelden vanuit een WebView met Accountkit. U moet de aanmeldingsinterface van uw accountset met de native code schrijven.
In deze quicktip-zelfstudie hebt u geleerd over wachtwoordloze verificatie met Facebook Account Kit: wat het is, waarom u zou willen overwegen om het te gebruiken en hoe u het in uw Android-app kunt implementeren..
Een waarschuwing echter: sommigen zien wachtwoordloze authenticatie als minder veilig. De meeste mensen zouden het niet gebruiken als beveiliging een prioriteit is, bijvoorbeeld met een app voor het bankieren. Gebruik dus enige discretie over wanneer u het moet gebruiken en wanneer u moet kiezen voor een meer traditioneel authenticatieschema.
Raadpleeg de officiële documentatie voor meer informatie over Facebook Account Kit. En voor meer informatie over Android-ontwikkeling, bekijk een aantal van onze andere berichten hier op Envato Tuts+!