Bei der kennwortlosen Authentifizierung wird ein Kennwort für die Registrierung oder Anmeldung verwendet. Stattdessen wird die Benutzerauthentifizierung entweder mit einem einmaligen SMS-Bestätigungscode an das Telefon des Benutzers oder mit einem einmaligen Link zu ihrer E-Mail-Adresse bestätigt.
In diesem Kurztipp-Tutorial werde ich Ihnen zeigen, wie Sie das Account Kit von Facebook für die passwortlose Authentifizierung in Ihrer Android-App verwenden. Ihre Benutzer registrieren und loggen sich entweder mit ihrer Telefonnummer oder einer E-Mail-Adresse ein. Benutzer benötigen nicht einmal ein Facebook-Konto, um sich zu authentifizieren.
Darüber hinaus ist das Account Kit einfach zu implementieren und erspart Ihnen das mühsame Erstellen eines Anmeldesystems.
Das folgende Diagramm sollte deutlich machen, wie das Account Kit funktioniert.
Die Authentifizierung erfolgt in einer Reihe von Austauschen zwischen Benutzer und App. Zuerst initiiert der Benutzer die Anmeldung, indem er die App auf sein Telefon lädt. Anschließend wird ein Bestätigungscode an die SMS des Benutzers gesendet, oder ein einmaliger Link wird per E-Mail gesendet. Wenn der Benutzer anschließend den Bestätigungscode eingibt oder auf den Link klickt, werden diese für die App authentifiziert.
Eine weitere tolle Funktion des Facebook Account Kit besteht darin, dass das Konto Kit versucht, es mit der mit dem Facebook-Profil des Benutzers verknüpften Telefonnummer abzustimmen, wenn Ihr Benutzer seine oder ihre Telefonnummer in die App eingibt. Wenn der Benutzer in der Android-Facebook-App angemeldet ist und die Telefonnummern übereinstimmen, überspringt Account Kit das Senden des SMS-Bestätigungscodes, und der Benutzer wird nahtloser angemeldet.
Um mit dem Account Kit zu beginnen, benötigen Sie:
Gehen Sie zu Ihrem App-Dashboard und klicken Sie auf Produkt hinzufügen und wählen Sie Konto Kit. Klicken Sie dann auf Loslegen Schaltfläche, um das Account Kit hinzuzufügen. Was Sie sehen werden, ist die Konfiguration der Einstellungen für das Account Kit.
Fügen Sie die Abhängigkeit mit der neuesten Version des Account Kit SDK in Ihrem hinzu build.gradle Datei und synchronisieren Sie Ihr Projekt.
Repositorys jcenter () Abhängigkeiten compile 'com.facebook.android:account-kit-sdk:4.+'
Fügen Sie Ihre Facebook-App-ID, Account-Kit hinzuClient-Token (dieses ist im Dashboard der Account Kit-Einstellungen verfügbar) und das INTERNET
Erlaubnis zum AndroidManifest.xml.
Fügen Sie Ihre App-ID und Ihr Account Kit-Client-Token hinzu strings.xml Datei.
IhreAPPId IhrAccountKitClientToken
Binden Sie auch das Account Kit-Design in Ihre ein Stile.xml.
Initialisieren Sie in Ihrer Anwendungsklasse das SDK (denken Sie daran, das android: name
in deiner AndroidManifest.xml).
public class MyApplication erweitert Application @Override public void onCreate () super.onCreate (); AccountKit.initialize (getApplicationContext ());
Wir müssen einen separaten Handler für die Authentifizierungsabläufe für die SMS- und E-Mail-Anmeldung schreiben.
Für SMS in Zeile 5 geben wir den Anmeldetyp an LoginType.PHONE
.
public void onSMSLoginFlow (Ansichtsansicht) final Intent intent = new Intent (this, AccountKitActivity.class); AccountKitConfiguration.AccountKitConfigurationBuilder configurationBuilder = new AccountKitConfiguration.AccountKitConfigurationBuilder (LoginType.PHONE, AccountKitActivity.ResponseType.CODE); // oder .ResponseType.TOKEN //… zusätzliche Konfiguration durchführen… intent.putExtra (AccountKitActivity.ACCOUNT_KIT_ACTIVITY_CONFIGURATION, configurationBuilder.build ()); startActivityForResult (intent, 101);
Für E-Mails in Zeile 5 geben wir den Anmeldetyp an LoginType.EMAIL
.
public void onEmailLoginFlow (Ansicht) final Intent intent = new Intent (this, AccountKitActivity.class); AccountKitConfiguration.AccountKitConfigurationBuilder configurationBuilder = new AccountKitConfiguration.AccountKitConfigurationBuilder (LoginType.EMAIL, AccountKitActivity.ResponseType.CODE); // oder .ResponseType.TOKEN //… zusätzliche Konfiguration durchführen… intent.putExtra (AccountKitActivity.ACCOUNT_KIT_ACTIVITY_CONFIGURATION, configurationBuilder.build ()); startActivityForResult (intent, 101);
Hier ist ein einfaches Layout für einen Bildschirm, auf dem Schaltflächen zum Anmelden mit SMS oder E-Mail angezeigt werden.
Wenn nun ein Benutzer versucht, sich anzumelden, erhalten Sie eine Antwort in der onActivityResult ()
Methode. In dieser Methode können wir erfolgreiche, abgebrochene und fehlgeschlagene Authentifizierungen verarbeiten.
@Override protected void onActivityResult (final int requestCode, final int resultCode, abschließende Intent-Daten) super.onActivityResult (requestCode, resultCode, data); if (requestCode == 101) // Bestätigen Sie, dass diese Antwort mit Ihrer Anfrage übereinstimmt. AccountKitLoginResult loginResult = data.getParcelableExtra (AccountKitLoginResult.RESULT_KEY); Zeichenfolge toastMessage; if (loginResult.getError ()! = null) toastMessage = loginResult.getError (). getErrorType (). getMessage (); showErrorActivity (loginResult.getError ()); else if (loginResult.wasCancelled ()) toastMessage = "Anmeldung abgebrochen"; else if (loginResult.getAccessToken ()! = null) toastMessage = "Erfolg:" + loginResult.getAccessToken (). getAccountId (); else toastMessage = String.format ("Erfolg:% s ..."), loginResult.getAuthorizationCode (). substring (0, 10)); // Wenn Sie einen Autorisierungscode haben, rufen Sie ihn von // loginResult.getAuthorizationCode () // ab, übergeben Sie ihn an Ihren Server und tauschen Sie ihn gegen ein Zugriffstoken aus. // Erfolg! Beginnen Sie Ihre nächste Aktivität… goToMyLoggedInActivity (); // Zeigen Sie dem Benutzer das Ergebnis auf geeignete Weise an. Toast.makeText (dies ToastMessage, Toast.LENGTH_LONG) .show ();
Jetzt können wir unsere App ausführen, um die SMS- und E-Mail-Anmeldeflüsse zu testen!
Beachten Sie, dass das JavaScript-SDK für das Account Kit keine WebView-Anmeldung unterstützt. Daher können Sie keine Personen über ein WebView mit dem Account Kit anmelden. Sie müssen Ihr Login-Interface für das Account-Kit mit nativem Code schreiben.
In diesem Kurztipp-Lernprogramm haben Sie die kennwortlose Authentifizierung mit Facebook Account Kit kennen gelernt: Was ist es, warum sollten Sie es in Erwägung ziehen, es zu verwenden und wie es in Ihrer Android-App implementiert werden kann.
Ein Wort der Warnung: Einige sehen die kennwortlose Authentifizierung als weniger sicher an. Die meisten Benutzer würden es nicht verwenden, wenn Sicherheit Priorität hat, beispielsweise bei einer Banking-App. Verwenden Sie daher ein wenig Diskretion, wann und wann Sie ein herkömmlicheres Authentifizierungsschema verwenden möchten.
Weitere Informationen zum Facebook Account Kit finden Sie in der offiziellen Dokumentation. Um mehr über die Android-Entwicklung zu erfahren, lesen Sie einige der anderen Beiträge hier auf Envato Tuts+!