Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP

Autenticación Segura y sin Contraseña Usando Auth0

by
Difficulty:IntermediateLength:ShortLanguages:

Spanish (Español) translation by Naudys Angulo (you can also view the original English article)

En este artículo, aprenderá a configurar la autenticación sin contraseña utilizando el servicio Auth0. Auth0 le permite externalizar funciones de autenticación para su aplicación.

¿Qué Es Auth0?

Auth0 es una herramienta de autenticación-como-un-servicio que hace que la implementación de funciones relacionadas con la autenticación para su aplicación o sitio sea pan comido. Si ha creado una aplicación y desea externalizar las funciones de autenticación y autorización, un servicio como Auth0 es algo que debe considerar.

Permítanme resumir rápidamente lo que Auth0 tiene para ofrecer:

  • Sencillo inicio de sesión
  • autenticación de múlti-factor
  • inicios de sesión sin contraseña
  • gestión de usuarios
  • ¡y mucho más!

Configuración Inicial

En esta sección, revisaremos la configuración inicial para preparar la autenticación sin contraseña.

Antes de seguir adelante, asegúrese de instalar Composer, ya que se usará para instalar los Auth0 SDK reales utilizando el archivo composer.json. Además, si desea seguir los ejemplos de este artículo, siga adelante y obtenga una cuenta gratuita con Auth0.

Comencemos por agarrar un clon del proyecto de muestra.

Instalar Dependencias

Siga adelante, ejecute el comando composer install para instalar las dependencias.

De acuerdo con el archivo composer.json, debe haber instalado los paquetes vlucas/phpdotenv y auth0/auth0-php.

La biblioteca vlucas/phpdotenv es utilizada para inicializar variables de entorno del archivo .env. Por lo tanto, le permite separar la configuración del código que cambia entre entornos.

Por otro lado, el paquete auth0/auth0-php es el que nos ayudará a configurar la autorización en nuestra aplicación.

Configure las Variables de Entorno

A continuación, establezcamos la configuración de nuestra aplicación en el archivo .env. Continúa y crea el archivo .env copiándolo del archivo .env.example.

Contiene valores de configuración que serán utilizados por la biblioteca Auth0.

Debería poder encontrar la mayoría de las configuraciones en Aplicaciones> Aplicación predeterminada> Configuración en el panel de Auth0. Tenga en cuenta que estoy usando la aplicación predeterminada creada por el sistema. Por supuesto, puede seguir adelante y crear una nueva aplicación si así lo desea.

AUTH0_CALLBACK_URL es la URL de su aplicación donde Auth0 redirigirá a los usuarios después de iniciar sesión y cerrar sesión. El valor que usted establezca en este campo debe configurarse en las URL de Devolución de llamada Permitidas en la configuración de la aplicación en el panel de Auth0.

Acceso Sin Contraseña Usando el Correo Electrónico

Para habilitar el inicio de sesión sin contraseña utilizando el correo electrónico, vaya a Conexiones > Sin contraseña en el panel de Auth0 y habilite la opción Email.

En la mayoría de los casos, los ajustes de las configuraciones predeterminadas en Email funcionan fuera de la caja. Por supuesto, si quieres cambiar alguna configuración, sigue adelante y hazlo. No olvide habilitar las aplicaciones para las que desea autenticación sin contraseña en Connections> Passwordless> Email> Applications.

Con la configuración inicial en su lugar, podemos seguir adelante y crear un archivo que implemente el inicio de sesión sin contraseña mediante correo electrónico.

Implemente el Inicio de Sesión Sin Contraseña

Sigue adelante y crea el archivo email_auth_example.php con los siguientes contenidos

Al principio, hemos incluido cargadores automáticos que son responsables de cargar las clases relacionadas con la Auth0 y la variable de entorno.

Siguiendo eso, inicializamos las variables de configuración desde el archivo .env utilizando la función getenv.

A continuación, hemos llamado al método getUser en el objeto Auth0 para verificar si hay alguna sesión activa presente.  Basado en eso, mostramos el enlace SignIn si no hay sesión activa. De lo contrario, se muestra el nombre de usuario del usuario que inició sesión con el enlace Cerrar sesión.

¡Siga adelante, ejecute el archivo email_auth_example.php para probar su aplicación!

Inicio de Sesión Sin Contraseña Usando SMS

Para habilitar el inicio de sesión sin contraseña mediante SMS, vaya a Conexiones> Sin contraseña en el panel de Auth0 y habilite la opción SMS. De forma predeterminada, Auth0 usa el servicio de Twilio para enviar mensajes. Así que adelante y consígase una cuenta de Twilio.

Desde el panel Twilio, obtenga su CUENTA SID y AUTH TOKEN e ingrese esos valores en los campos Twilio SID y Twilio AuthToken en Conexiones> Sin contraseña> SMS> Configuración en el panel de Auth0.

Además, usted necesita crear un nuevo servicio de mensajería en SMS> Servicios de mensajería en su tablero Twilio. Después de la creación exitosa del servicio, obtendrá la ID del servicio, y eso es lo que deberá ingresar en el campo SID Copilot en Conexiones> Sin contraseña> SMS> Configuración.

Finalmente, echemos un vistazo a cómo funciona el inicio de sesión sin contraseña usando SMS. Crea el archivo sms_auth_example.php. Los contenidos son los mismos que email_auth_example.php, excepto la función de inicio de sesión(), que es la siguiente.

Todo es más o menos lo mismo, excepto que hemos proporcionado sms en lugar de email en la propiedad allowedConnections.

¡Siga adelante, ejecute el archivo sms_auth_example.php para probar su aplicación!

Conclusión

Hoy, miramos el inicio de sesión sin contraseña con el servicio Auth0. Entre los posibles métodos disponibles, implementamos los métodos de email y SMS con ejemplos de código.

Siéntase libre de dejar cualquier idea o pregunta usando el feed a continuación.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.