Passordløs autentisering hopper med et passord for registrering eller innlogging. I stedet er brukerautentisering bekreftet enten med en engangs SMS-bekreftelseskode sendt til brukerens telefon eller en engangslink til deres e-postadresse.
I denne raske tipsveiledningen vil jeg vise deg hvordan du bruker Konto sett via Facebook for passordløs godkjenning i Android-appen din. Brukerne dine vil registrere og logge inn med enten deres telefonnummer eller en e-postadresse. Brukerne trenger ikke engang å ha en Facebook-konto som skal godkjennes.
Ikke bare det, men kontosettet er enkelt å implementere og sparer deg fra å måtte kjedelig bygge et innloggingssystem.
Følgende diagram skal gjøre klart hvordan kontosettet fungerer.
Autentiseringen skjer i en rekke utvekslinger mellom brukeren og appen. Først starter brukeren påloggingen, kanskje ved å laste inn appen på telefonen. Deretter sendes en bekreftelseskode til brukerens SMS, eller en engangslink sendes via e-post. Etter at brukeren går inn i valideringskoden eller klikker lenken, blir de autentisert for appen.
En annen kul funksjon av Facebook Account Kit er at når brukeren skriver inn hans eller hennes telefonnummer i appen, vil kontosettet forsøke å matche det med telefonnummeret som er koblet til brukerens Facebook-profil. Hvis brukeren er logget inn i Android Facebook-appen, og telefonnumrene samsvarer, vil kontosettet hoppe over å sende SMS-bekreftelseskoden og brukeren vil bli logget inn mer sømløst.
For å begynne å bruke kontosett, må du:
Gå til appens dashbord, klikk på Legg til produkt knappen, og velg Konto Kit. Klikk deretter på Kom i gang knappen for å legge til kontosett. Det du vil se er innstillingene for kontosettet.
Legg til avhengigheten med den nyeste versjonen av SDK-kontosettet i din build.gradle fil og synkroniser prosjektet ditt.
repositories jcenter () avhengigheter compile 'com.facebook.android:account-kit-sdk:4.+'
Legg til din Facebook app ID, kontosettklienttoken (dette er tilgjengelig på kontrollpanelinnstillingene dashbordet), og INTERNETT
tillatelse til AndroidManifest.xml.
Ta med app-ID og klienttoken i kontosettet i din strings.xml fil.
YourAPPId YourAccountKitClientToken
Inkluder også kontosett-temaet i din stiler.xml.
I applikasjonsklassen, initialiser SDK (husk å inkludere android: navn
i din AndroidManifest.xml).
offentlig klasse MyApplication utvider søknad @Override public void onCreate () super.onCreate (); AccountKit.initialize (getApplicationContext ());
Vi må skrive en egen handler for sms og e-post påloggingsautentiseringsstrømmer.
For SMS, på linje 5, spesifiserer vi innloggetypen LoginType.PHONE
.
Offentlig tomgang onSMSLoginFlow (View view) Endelig Intent Intent = Ny Intent (dette, AccountKitActivity.class); AccountKitConfiguration.AccountKitConfigurationBuilder configurationBuilder = ny AccountKitConfiguration.AccountKitConfigurationBuilder (LoginType.PHONE, AccountKitActivity.ResponseType.CODE); // eller .ResponseType.TOKEN // ... utføre tilleggs konfigurasjon ... intent.putExtra (AccountKitActivity.ACCOUNT_KIT_ACTIVITY_CONFIGURATION, configurationBuilder.build ()); startActivityForResult (hensikt, 101);
For e-post, på linje 5, spesifiserer vi påloggstypen LoginType.EMAIL
.
Offentlig tomgang onEmailLoginFlow (View view) Endelig Intent Intent = Ny Intent (dette, AccountKitActivity.class); AccountKitConfiguration.AccountKitConfigurationBuilder configurationBuilder = ny AccountKitConfiguration.AccountKitConfigurationBuilder (LoginType.EMAIL, AccountKitActivity.ResponseType.CODE); // eller .ResponseType.TOKEN // ... utføre tilleggs konfigurasjon ... intent.putExtra (AccountKitActivity.ACCOUNT_KIT_ACTIVITY_CONFIGURATION, configurationBuilder.build ()); startActivityForResult (hensikt, 101);
Her er et enkelt oppsett for en skjerm som viser knapper for å logge inn med SMS eller e-post.
Nå når en bruker forsøker å logge inn, får vi et svar i onActivityResult ()
metode. I denne metoden kan vi håndtere vellykkede, kansellerte og mislykkede godkjenninger.
@Override protected void onActivityResult (siste int requestCode, final int resultCode, final Intent data) super.onActivityResult (requestCode, resultCode, data); hvis (requestCode == 101) // bekreft at dette svaret samsvarer med din forespørsel AccountKitLoginResult loginResult = data.getParcelableExtra (AccountKitLoginResult.RESULT_KEY); String toastMessage; hvis (loginResult.getError ()! = null) toastMessage = loginResult.getError (). getErrorType (). getMessage (); showErrorActivity (loginResult.getError ()); ellers hvis (loginResult.wasCancelled ()) toastMessage = "Logg avbrudd"; else if (loginResult.getAccessToken ()! = null) toastMessage = "Suksess:" + loginResult.getAccessToken (). getAccountId (); else toastMessage = String.format ("Suksess:% s ...", loginResult.getAuthorizationCode (). substring (0, 10)); // Hvis du har en autorisasjonskode, hent den fra // loginResult.getAuthorizationCode () // og send den til serveren din og utveksle den for et tilgangstoken. // Suksess! Start din neste aktivitet ... goToMyLoggedInActivity (); // Overfør resultatet til brukeren din på en passende måte. Toast.makeText (dette, toastMessage, Toast.LENGTH_LONG) .show ();
Nå kan vi kjøre appen vår for å teste SMS- og e-postinnloggingstrømmene!
Vær oppmerksom på at kontosettet JavaScript SDK ikke støtter WebView-innlogging, slik at du ikke kan logge inn folk fra en WebView med kontosett. Du må skrive inn innloggingsgrensesnittet for kontosettet med innfødt kode.
I denne raske tipsveiledningen har du lært om passordløs godkjenning med Facebook-kontosett: hva det er, hvorfor du kanskje vil vurdere å bruke det, og hvordan du implementerer det i Android-appen din.
Et advarsel, men: Noen ser passordfri godkjenning som mindre sikker. De fleste ville ikke bruke det når sikkerhet er en prioritet, for eksempel med en bankapp. Så bruk litt skjønn når du skal bruke den og når du skal gå med en mer tradisjonell autentiseringsordning.
For å lære mer om Facebook-kontosett, se den offisielle dokumentasjonen. Og for å lære mer om Android-utvikling, sjekk ut noen av våre andre innlegg her på Envato Tuts+!