L'autenticazione senza password salta utilizzando una password per la registrazione o il login. Invece, l'autenticazione dell'utente è confermata o con un codice di verifica SMS una tantum inviato al telefono dell'utente o un collegamento occasionale al loro indirizzo email.
In questo tutorial di suggerimento rapido, ti mostrerò come utilizzare Account Kit di Facebook per l'autenticazione senza password nell'app per Android. I tuoi utenti si registreranno e accederanno con il loro numero di telefono o un indirizzo email. Gli utenti non hanno nemmeno bisogno di avere un account Facebook per essere autenticati.
Non solo, ma Account Kit è facile da implementare e ti evita di dover creare noiosamente un sistema di login.
Lo schema seguente dovrebbe chiarire come funziona il kit account.
L'autenticazione avviene in una serie di scambi tra l'utente e l'app. Innanzitutto l'utente avvia il login, magari caricando l'app sul proprio telefono. Quindi, un codice di verifica viene inviato all'SMS dell'utente o un collegamento occasionale viene inviato tramite e-mail. Successivamente, se l'utente inserisce il codice di convalida o fa clic sul collegamento, verrà autenticato per l'app.
Un'altra caratteristica interessante del kit account di Facebook è che quando l'utente inserisce il proprio numero di telefono nell'app, Account Kit tenterà di abbinarlo al numero di telefono collegato al profilo Facebook dell'utente. Se l'utente è connesso all'app Android di Facebook e i numeri di telefono corrispondono, Account Kit salterà l'invio del codice di verifica SMS e l'utente verrà registrato più facilmente.
Per iniziare a utilizzare il Kit account, avrai bisogno di:
Vai alla dashboard dell'app, fai clic su Aggiungi prodotto pulsante e selezionare account Kit. Quindi fare clic su Iniziare pulsante per aggiungere il Kit account. Quello che vedrai è la configurazione delle impostazioni per il Kit account.
Aggiungi la dipendenza con l'ultima versione dell'SDK Kit account nel tuo build.gradle file e sincronizza il tuo progetto.
repositories jcenter () dependencies compile 'com.facebook.android:account-kit-sdk:4.+'
Aggiungi il tuo ID app di Facebook, Kit accounttoken client (disponibile nella dashboard delle impostazioni del kit account) e INTERNET
permesso al AndroidManifest.xml.
Includi l'ID app e il token client Kit account nel tuo strings.xml file.
YourAPPId YourAccountKitClientToken
Includere anche il tema Kit account nel tuo stili.xml.
Nella classe Application, inizializza l'SDK (ricordati di includere il Android: nome
nel tuo AndroidManifest.xml).
public class MyApplication estende l'applicazione @Override public void onCreate () super.onCreate (); AccountKit.initialize (getApplicationContext ());
Dobbiamo scrivere un gestore separato per i flussi di autenticazione di login SMS ed e-mail.
Per SMS, alla riga 5, specifichiamo il tipo di accesso LoginType.PHONE
.
public void onSMSLoginFlow (Visualizza vista) final Intent intent = new Intent (this, AccountKitActivity.class); AccountKitConfiguration.AccountKitConfigurationBuilder configurationBuilder = new AccountKitConfiguration.AccountKitConfigurationBuilder (LoginType.PHONE, AccountKitActivity.ResponseType.CODE); // o .ResponseType.TOKEN // ... esegue una configurazione aggiuntiva ... intent.putExtra (AccountKitActivity.ACCOUNT_KIT_ACTIVITY_CONFIGURATION, configurationBuilder.build ()); startActivityForResult (intent, 101);
Per la posta elettronica, nella riga 5, specifichiamo il tipo di accesso LoginType.EMAIL
.
public void onEmailLoginFlow (Visualizza vista) final Intent intent = new Intent (this, AccountKitActivity.class); AccountKitConfiguration.AccountKitConfigurationBuilder configurationBuilder = new AccountKitConfiguration.AccountKitConfigurationBuilder (LoginType.EMAIL, AccountKitActivity.ResponseType.CODE); // o .ResponseType.TOKEN // ... esegue una configurazione aggiuntiva ... intent.putExtra (AccountKitActivity.ACCOUNT_KIT_ACTIVITY_CONFIGURATION, configurationBuilder.build ()); startActivityForResult (intent, 101);
Ecco un semplice layout per uno schermo che mostra i pulsanti per accedere con SMS o e-mail.
Ora, quando un utente tenta di accedere, otterremo una risposta in onActivityResult ()
metodo. In questo metodo, possiamo gestire le autenticazioni di successo, annullate e fallite.
@Override protected void onActivityResult (final int requestCode, final int resultCode, final Intent data) super.onActivityResult (requestCode, resultCode, data); if (requestCode == 101) // conferma che questa risposta corrisponde alla tua richiesta 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 cancellato"; else if (loginResult.getAccessToken ()! = null) toastMessage = "Success:" + loginResult.getAccessToken (). getAccountId (); else toastMessage = String.format ("Success:% s ...", loginResult.getAuthorizationCode (). sottostringa (0, 10)); // Se si dispone di un codice di autorizzazione, recuperarlo da // loginResult.getAuthorizationCode () // e passarlo sul server e scambiarlo con un token di accesso. // successo! Inizia la tua prossima attività ... goToMyLoggedInActivity (); // Superficie il risultato per l'utente in modo appropriato. Toast.makeText (this, toastMessage, Toast.LENGTH_LONG) .show ();
Ora possiamo eseguire la nostra app per testare i flussi di accesso SMS ed email!
Si noti che l'SDK JavaScript del kit account non supporta l'accesso a WebView, quindi non è possibile accedere alle persone da una WebView con il kit account. Dovrai scrivere l'interfaccia di accesso del tuo account kit con il codice nativo.
In questo tutorial di suggerimenti rapidi, hai imparato a conoscere l'autenticazione senza password utilizzando il kit account di Facebook: che cos'è, perché dovresti considerare di utilizzarlo e come implementarlo nella tua app Android.
Una parola di avvertimento, tuttavia: alcuni vedono l'autenticazione senza password come meno sicura. La maggior parte delle persone non lo userebbe quando la sicurezza è una priorità, ad esempio con un'app bancaria. Quindi usa una certa discrezione su quando usarlo e quando andare con uno schema di autenticazione più tradizionale.
Per ulteriori informazioni su Facebook Account Kit, fare riferimento alla documentazione ufficiale. E per saperne di più sullo sviluppo di Android, controlla alcuni dei nostri altri post qui su Envato Tuts+!