La autenticación sin contraseña se salta usando una contraseña para el registro o inicio de sesión. En cambio, la autenticación del usuario se confirma con un código de verificación de SMS que se envía una sola vez al teléfono del usuario o un enlace único a su dirección de correo electrónico.
En este tutorial de consejos rápidos, te mostraré cómo usar el kit de cuenta de Facebook para la autenticación sin contraseña en tu aplicación de Android. Sus usuarios se registrarán e iniciarán sesión con su número de teléfono o una dirección de correo electrónico. Los usuarios ni siquiera necesitan tener una cuenta de Facebook para autenticarse.
No solo eso, sino que el kit de cuenta es fácil de implementar y le ahorra tener que construir tediosamente un sistema de inicio de sesión.
El siguiente diagrama debe aclarar cómo funciona el kit de cuenta..
La autenticación se lleva a cabo en una serie de intercambios entre el usuario y la aplicación. Primero, el usuario inicia el inicio de sesión, tal vez cargando la aplicación en su teléfono. Luego, se envía un código de verificación a los SMS del usuario o se envía un enlace único por correo electrónico. Después de eso, si el usuario ingresa el código de validación o hace clic en el enlace, se autenticará para la aplicación.
Otra característica interesante del kit de cuenta de Facebook es que cuando su usuario ingrese su número de teléfono en la aplicación, el kit de cuenta intentará asociarlo con el número de teléfono conectado al perfil de Facebook del usuario. Si el usuario ha iniciado sesión en la aplicación de Facebook para Android y los números de teléfono coinciden, el kit de la cuenta omitirá el envío del código de verificación de SMS y el usuario iniciará sesión de manera más sencilla.
Para comenzar a utilizar el kit de cuenta, necesitará:
Vaya al panel de su aplicación, haga clic en Añadir Producto botón, y seleccione Cuenta Equipo. Luego haga clic en el Empezar botón para agregar el kit de cuenta. Lo que verá es la configuración de configuración para el kit de cuenta.
Agregue la dependencia con la última versión del kit de cuenta SDK en su construir.gradle archiva y sincroniza tu proyecto.
repositorios jcenter () dependencias compile 'com.facebook.android:account-kit-sdk:4.+'
Agregue su ID de aplicación de Facebook, kit de cuentatoken de cliente (está disponible en el panel de configuración del kit de cuenta), y el INTERNET
permiso para el AndroidManifest.xml.
Incluya su ID de aplicación y el token de cliente de Kit de cuenta en su strings.xml expediente.
SuAPPId YourAccountKitClientToken
Incluya también el tema del kit de cuenta en su estilos.xml.
En su clase de aplicación, inicialice el SDK (recuerde incluir el android: nombre
en tus AndroidManifest.xml).
la clase pública MyApplication extiende la aplicación @Override public void onCreate () super.onCreate (); AccountKit.initialize (getApplicationContext ());
Tenemos que escribir un controlador separado para los flujos de autenticación de inicio de sesión de SMS y correo electrónico.
Para SMS, en la línea 5, especificamos el tipo de inicio de sesión. LoginType.PHONE
.
public void onSMSLoginFlow (vista de vista) intención de intención final = nueva intención (esto, AccountKitActivity.class); AccountKitConfiguration.AccountKitConfigurationBuilder configurationBuilder = new AccountKitConfiguration.AccountKitConfigurationBuilder (LoginType.PHONE, AccountKitActivity.ResponseType.CODE); // o .ResponseType.TOKEN //… realizar configuración adicional… intent.putExtra (AccountKitActivity.ACCOUNT_KIT_ACTIVITY_CONFIGURATION, configurationBuilder.build ()); startActivityForResult (intención, 101);
Para correo electrónico, en la línea 5, especificamos el tipo de inicio de sesión. LoginType.EMAIL
.
public void onEmailLoginFlow (vista de vista) intención de intención final = nueva intención (esto, AccountKitActivity.class); AccountKitConfiguration.AccountKitConfigurationBuilder configurationBuilder = new AccountKitConfiguration.AccountKitConfigurationBuilder (LoginType.EMAIL, AccountKitActivity.ResponseType.CODE); // o .ResponseType.TOKEN //… realizar configuración adicional… intent.putExtra (AccountKitActivity.ACCOUNT_KIT_ACTIVITY_CONFIGURATION, configurationBuilder.build ()); startActivityForResult (intención, 101);
Aquí hay un diseño simple para una pantalla que muestra botones para iniciar sesión con SMS o correo electrónico.
Ahora, cuando un usuario intenta iniciar sesión, obtendremos una respuesta en el onActivityResult ()
método. En este método, podemos manejar autenticaciones exitosas, canceladas y fallidas..
@Override protected void onActivityResult (final int requestCode, final int resultCode, final Intent data) super.onActivityResult (requestCode, resultCode, data); if (requestCode == 101) // confirme que esta respuesta coincide con su solicitud AccountKitLoginResult loginResult = data.getParcelableExtra (AccountKitLoginResult.RESULT_KEY); Strast toastMessage; if (loginResult.getError ()! = null) toastMessage = loginResult.getError (). getErrorType (). getMessage (); showErrorActivity (loginResult.getError ()); else if (loginResult.wasCancelled ()) toastMessage = "Inicio de sesión cancelado"; else if (loginResult.getAccessToken ()! = null) toastMessage = "Success:" + loginResult.getAccessToken (). getAccountId (); else toastMessage = String.format ("Success:% s…", loginResult.getAuthorizationCode (). substring (0, 10)); // Si tiene un código de autorización, recupérelo de // loginResult.getAuthorizationCode () // y páselo a su servidor y cámbielo por un token de acceso. // ¡Éxito! Comience su próxima actividad ... goToMyLoggedInActivity (); // Transmitir el resultado a su usuario de forma adecuada. Toast.makeText (este, toastMessage, Toast.LENGTH_LONG) .show ();
Ahora podemos ejecutar nuestra aplicación para probar los flujos de inicio de sesión de SMS y correo electrónico.!
Tenga en cuenta que el SDK de JavaScript del Kit de cuenta no es compatible con el inicio de sesión de WebView, por lo que no puede iniciar sesión en un WebView con el Kit de cuenta. Tendrá que escribir la interfaz de inicio de sesión de su kit de cuenta con código nativo.
En este tutorial de consejos rápidos, aprendió acerca de la autenticación sin contraseña utilizando el kit de cuentas de Facebook: qué es, por qué debería considerar usarlo y cómo implementarlo en su aplicación de Android.
Sin embargo, una advertencia: algunos ven la autenticación sin contraseña como menos segura. La mayoría de la gente no lo usaría cuando la seguridad es una prioridad, por ejemplo, con una aplicación bancaria. Por lo tanto, use cierta discreción sobre cuándo usarlo y cuándo ir con un esquema de autenticación más tradicional..
Para obtener más información sobre el kit de cuenta de Facebook, consulte la documentación oficial. Y para obtener más información sobre el desarrollo de Android, consulte algunas de nuestras otras publicaciones aquí en Envato Tuts+!