L'authentification sans mot de passe ignore l'utilisation d'un mot de passe pour l'enregistrement ou la connexion. Au lieu de cela, l'authentification de l'utilisateur est confirmée par un code de vérification SMS unique envoyé au téléphone de l'utilisateur ou par un lien unique vers son adresse électronique..
Dans ce tutoriel, je vais vous montrer comment utiliser Account Kit by Facebook pour une authentification sans mot de passe dans votre application Android. Vos utilisateurs vont s'inscrire et se connecter avec leur numéro de téléphone ou une adresse e-mail. Les utilisateurs n'ont même pas besoin d'avoir un compte Facebook pour s'authentifier.
De plus, Account Kit est facile à mettre en œuvre et vous évite d'avoir à construire fastidieusement un système de connexion..
Le diagramme suivant devrait expliquer le fonctionnement de Account Kit..
L'authentification a lieu dans une série d'échanges entre l'utilisateur et l'application. Tout d'abord, l'utilisateur commence la connexion, peut-être en chargeant l'application sur son téléphone. Ensuite, un code de vérification est envoyé au SMS de l'utilisateur ou un lien unique est envoyé par courrier électronique. Après cela, si l'utilisateur entre le code de validation ou clique sur le lien, il sera authentifié pour l'application..
Une autre fonctionnalité intéressante de Facebook Account Kit est que, lorsque votre utilisateur entre son numéro de téléphone dans l'application, Account Kit essaiera de le faire correspondre au numéro de téléphone connecté au profil Facebook de l'utilisateur. Si l'utilisateur est connecté à l'application Facebook Facebook et que les numéros de téléphone correspondent, Account Kit ignorera l'envoi du code de vérification SMS et l'utilisateur sera connecté de manière plus transparente..
Pour commencer à utiliser Account Kit, vous aurez besoin de:
Accédez au tableau de bord de votre application, cliquez sur le bouton Ajouter un produit bouton et sélectionnez Compte Trousse. Puis cliquez sur le Commencer bouton pour ajouter un kit de compte. Ce que vous verrez est la configuration des paramètres pour Account Kit.
Ajoutez la dépendance avec la dernière version du kit de développement de compte Account Kit dans votre build.gradle déposer et synchroniser votre projet.
dépôts jcenter () dépendances compile 'com.facebook.android:account-kit-sdk:4.+'
Ajoutez votre identifiant d'application Facebook, votre compte utilisateurjeton client (disponible sur le tableau de bord des paramètres de Account Kit), et le L'INTERNET
autorisation à la AndroidManifest.xml.
Incluez votre identifiant d'application et votre jeton client Account Kit dans votre strings.xml fichier.
Votre APPId Votre compte clientClient
Incluez également le thème Account Kit dans votre modes.xml.
Dans votre classe d’application, initialisez le SDK (n'oubliez pas d'inclure le Android: nom
dans ton AndroidManifest.xml).
public class MyApplication étend Application @Override public void onCreate () super.onCreate (); AccountKit.initialize (getApplicationContext ());
Nous devons écrire un gestionnaire distinct pour les flux d'authentification de connexion SMS et email.
Pour les SMS, à la ligne 5, nous spécifions le type de login LoginType.PHONE
.
public void onSMSLoginFlow (Afficher la vue) intention finale de l'intention = nouvelle intention (this, AccountKitActivity.class); AccountKitConfiguration.AccountKitConfigurationBuilder configurationBuilder = new AccountKitConfiguration.AccountKitConfigurationBuilder (LoginType.PHONE, AccountKitActivity.ResponseType.CODE); // ou .ResponseType.TOKEN //… effectuer une configuration supplémentaire… intent.putExtra (AccountKitActivity.ACCOUNT_KIT_ACTIVITY_CONFIGURATION, configurationBuilder.build ()); startActivityForResult (intent, 101);
Pour le courrier électronique, à la ligne 5, nous spécifions le type de connexion. LoginType.EMAIL
.
public void onEmailLoginFlow (Afficher la vue) final Intent Intention = new Intent (this, AccountKitActivity.class); AccountKitConfiguration.AccountKitConfigurationBuilder configurationBuilder = new AccountKitConfiguration.AccountKitConfigurationBuilder (LoginType.EMAIL, AccountKitActivity.ResponseType.CODE); // ou .ResponseType.TOKEN //… effectuer une configuration supplémentaire… intent.putExtra (AccountKitActivity.ACCOUNT_KIT_ACTIVITY_CONFIGURATION, configurationBuilder.build ()); startActivityForResult (intent, 101);
Voici une disposition simple pour un écran qui montre des boutons pour vous connecter avec SMS ou email.
Désormais, lorsqu'un utilisateur tente de se connecter, une réponse apparaît dans le onActivityResult ()
méthode. Dans cette méthode, nous pouvons gérer les authentifications réussies, annulées et échouées.
@Override protected void onActivityResult (final int requestCode, final int resultCode, données d'intention finales) super.onActivityResult (requestCode, resultCode, data); if (requestCode == 101) // confirme que cette réponse correspond à votre requête 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 = "Connexion annulée"; else if (loginResult.getAccessToken ()! = null) toastMessage = "Succès:" + loginResult.getAccessToken (). getAccountId (); else toastMessage = String.format ("Succès:% s ...", loginResult.getAuthorizationCode (). substring (0, 10)); // Si vous avez un code d'autorisation, extrayez-le à partir de // loginResult.getAuthorizationCode () //, transmettez-le à votre serveur et échangez-le contre un jeton d'accès. // Succès! Commencez votre prochaine activité… goToMyLoggedInActivity (); // Présente le résultat à votre utilisateur de manière appropriée. Toast.makeText (this, toastMessage, Toast.LENGTH_LONG) .show ();
Maintenant, nous pouvons exécuter notre application pour tester les flux de connexion SMS et email!
Notez que le kit SDK JavaScript de Account Kit ne prend pas en charge la connexion WebView. Par conséquent, vous ne pouvez pas connecter de personnes à partir de WebView avec Account Kit. Vous devrez écrire votre interface de connexion Account Kit avec du code natif.
Dans ce tutoriel, vous avez appris comment utiliser l'authentification sans mot de passe à l'aide de Facebook Account Kit: ce que c'est, pourquoi vous pourriez vouloir l'utiliser et comment l'implémenter dans votre application Android..
Un mot d'avertissement cependant: certains considèrent que l'authentification sans mot de passe est moins sécurisée. La plupart des gens ne l'utilisent pas lorsque la sécurité est une priorité, par exemple avec une application bancaire. Alors, utilisez une certaine discrétion quant au moment de l'utiliser et au moment d'utiliser un schéma d'authentification plus traditionnel.
Pour en savoir plus sur la trousse de compte Facebook, reportez-vous à la documentation officielle. Et pour en savoir plus sur le développement Android, consultez certains de nos autres articles ici sur Envato Tuts+!