Löslosfri autentisering hoppar med ett lösenord för registrering eller inloggning. Istället bekräftas användarautentisering antingen med en engångs-SMS-verifieringskod skickad till användarens telefon eller en engångslänk till deras e-postadress.
I denna snabba tips handledning kommer jag att visa dig hur du använder Konto Kit via Facebook för lösenordsfri autentisering i din Android app. Dina användare kommer att registrera och logga in med antingen deras telefonnummer eller en e-postadress. Användare behöver inte ens ha ett Facebook-konto att verifieras.
Det är inte bara det, men kontotsatsen är lätt att implementera och sparar dig från att behöva bygga ett inloggningssystem.
Följande diagram ska klargöra hur kontotsats fungerar.
Autentiseringen sker i en serie utbyten mellan användaren och appen. Först börjar användaren inloggningen, kanske genom att ladda appen på sin telefon. Sedan skickas en verifieringskod till användarens SMS, eller en engångslänk skickas via e-post. Därefter autentiseras användaren för appen om användaren anger valideringskoden eller klickar på länken.
En annan cool funktion i Facebook-kontopaketet är att när användaren går in i sitt eller hennes telefonnummer i appen, kommer Account Kit att försöka matcha det med det telefonnummer som är anslutet till användarens Facebook-profil. Om användaren är inloggad i Android Facebook-appen, och telefonnumren matchar, kommer kontotsatsen att hoppa över att skicka SMS-verifieringskoden och användaren loggas in mer sömlöst.
För att börja använda kontotsats behöver du:
Gå till din appens instrumentpanel, klicka på Lägg till produkt knappen och välj konto Utrustning. Klicka sedan på Komma igång knappen för att lägga till kontosats. Vad du kommer att se är inställningskonfigurationen för kontotsats.
Lägg till beroendet med den senaste versionen av SDK-kontotsatsen i din build.gradle fil och synkronisera ditt projekt.
repositories jcenter () beroenden kompilera 'com.facebook.android:account-kit-sdk:4.+'
Lägg till ditt Facebook-app-ID, kontotsatsklienttoken (det här är tillgängligt på Dashboard-kontotsatsinställningar) och INTERNET
tillstånd till AndroidManifest.xml.
Ta med ditt app-id och klienttoken för kontotsats i din strings.xml fil.
YourAPPId YourAccountKitClientToken
Inkludera även kontotsats-temat i din stilar.xml.
Initiera din applikationsklass, SDK (kom ihåg att inkludera android: name
i din AndroidManifest.xml).
public class MyApplication utökar applikationen @Override public void onCreate () super.onCreate (); AccountKit.initialize (getApplicationContext ());
Vi måste skriva en separat hanterare för sms och e-post inloggnings autentiseringsflöden.
För SMS, på rad 5, anger vi inloggningstypen LoginType.PHONE
.
public void onSMSLoginFlow (View view) Slutlig Intent Intent = Ny Intent (detta, AccountKitActivity.class); AccountKitConfiguration.AccountKitConfigurationBuilder configurationBuilder = nytt AccountKitConfiguration.AccountKitConfigurationBuilder (LoginType.PHONE, AccountKitActivity.ResponseType.CODE); // eller .ResponseType.TOKEN // ... utföra ytterligare konfiguration ... intention.putExtra (AccountKitActivity.ACCOUNT_KIT_ACTIVITY_CONFIGURATION, configurationBuilder.build ()); startActivityForResult (avsikt, 101);
För e-post, på rad 5, anger vi inloggningstypen LoginType.EMAIL
.
public void onEmailLoginFlow (View view) Slutlig Intent Intent = Ny Intent (detta, AccountKitActivity.class); AccountKitConfiguration.AccountKitConfigurationBuilder configurationBuilder = nytt AccountKitConfiguration.AccountKitConfigurationBuilder (LoginType.EMAIL, AccountKitActivity.ResponseType.CODE); // eller .ResponseType.TOKEN // ... utföra ytterligare konfiguration ... intention.putExtra (AccountKitActivity.ACCOUNT_KIT_ACTIVITY_CONFIGURATION, configurationBuilder.build ()); startActivityForResult (avsikt, 101);
Här är en enkel layout för en skärm som visar knappar för att logga in med SMS eller e-post.
Nu när en användare försöker logga in får vi ett svar i onActivityResult ()
metod. I den här metoden kan vi hantera framgångsrika, annullerade och misslyckade autentiseringar.
@Override protected void onActivityResult (final int requestCode, final int resultCode, final Intent data) super.onActivityResult (requestCode, resultCode, data); om (requestCode == 101) // bekräfta att detta svar matchar din förfrågan AccountKitLoginResult loginResult = data.getParcelableExtra (AccountKitLoginResult.RESULT_KEY); String toastMessage; om (loginResult.getError ()! = null) toastMessage = loginResult.getError (). getErrorType (). getMessage (); showErrorActivity (loginResult.getError ()); annars om (loginResult.wasCancelled ()) toastMessage = "Login Canceled"; else if (loginResult.getAccessToken ()! = null) toastMessage = "Succes:" + loginResult.getAccessToken (). getAccountId (); else toastMessage = String.format ("Framgång:% s ...", loginResult.getAuthorizationCode (). substring (0, 10)); // Om du har en behörighetskod, hämta den från // loginResult.getAuthorizationCode () // och skicka den till din server och byt ut den för en åtkomsttoken. // Framgång! Starta din nästa aktivitet ... goToMyLoggedInActivity (); // Överför resultatet till användaren på ett lämpligt sätt. Toast.makeText (detta, toastMessage, Toast.LENGTH_LONG) .show ();
Nu kan vi köra vår app för att testa sms och e-post inloggningsflöden!
Observera att kontotsatsen JavaScript SDK inte stöder WebView-inloggning, så att du inte kan logga in personer från en WebView med kontosats. Du måste skriva ditt konto Kit-inloggningsgränssnitt med inbyggd kod.
I denna snabba tipshandledning lärde du dig om lösenordslös autentisering med hjälp av Facebook-konto: vad det är, varför du kanske vill överväga att använda det och hur du implementerar det i din Android-app.
Ett varningsord, även om vissa ser lösenordsfri autentisering som mindre säker. De flesta skulle inte använda det när säkerhet prioriteras, till exempel med en bankapp. Så använd ett visst utrymme för när du ska använda det och när du ska gå med ett mer traditionellt autentiseringsschema.
För mer information om Facebook-konto, se den officiella dokumentationen. Och för att lära dig mer om Android utveckling, kolla in några av våra andra inlägg här på Envato Tuts+!