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

Autenticación y Autorización con Auth0 en PHP

by
Difficulty:IntermediateLength:LongLanguages:

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

En este artículo vamos a explorar el servicio Auth0, que proporciona autenticación y autorización como servicio. Auth0 le permite configurar autenticación básica y características de la autorización para tus aplicaciones en un abrir y cerrar de ojos.

¿Qué es Auth0?

Auth0 es una autenticación como una herramienta de servicio que hace aplicación de funciones relacionadas con la autenticación en el sitio una brisa. Si has desarrollado una aplicación y desea sólo externalizar las funciones de autenticación y autorización, un servicio como Auth0 es algo debe considerar.

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

  • único ingreso
  • autenticación de múltiples factores
  • inicios de sesión de conexión
  • gestión de usuarios
  • y mucho más

En este artículo, iremos a través de un par de únicos sesión métodos que se podrían implementar en tus aplicaciones web con el fin de aprovechar las funcionalidades de autenticación proporcionadas por el servicio de Auth0.

En la primera mitad del artículo, exploraremos cómo configurar la funcionalidad de autenticación básica en una aplicación de web de lado del servidor PHP. En la segunda mitad, voy a explicar cómo podría asegurar su API personalizadas estableciendo autorización OAuth utilizando el servicio de Auth0.

Integración de la autenticación de servidor

En esta sección, iremos a través de cómo puede rápidamente configurar autenticación básica para aplicaciones de servidor web usando Auth0. De hecho, el equipo de Auth0 ya proporciona un ejemplo práctico de GitHub que demuestra ejemplos básicos, por lo que vamos a utilizar en lugar de reinventar la rueda.

Antes de pasar adelante, asegúrese de instalar el compositor ya que se utilizará para instalar el SDK de Auth0 real utilizando el archivo composer.json. También, si usted quiere seguir los ejemplos en este artículo, siga adelante y búscate una cuenta gratuita con Auth0.

Poner en Marcha el Proyecto

Vamos a ir adelante y coge la copia del proyecto de las muestras.

Seguir adelante la ejecución el comando composer install para instalar las dependencias.

Según el archivo composer.json, debe tener instalado los paquetes de vlucas/phpdotenv y auth0/auth0-php.

La biblioteca de vlucas/phpdotenv se utiliza para inicializar variables de entorno del archivo .env. Así, permite separar la configuración del código que cambia entre entornos.

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

A continuación, vamos a configurar la configuración de nuestra aplicación en el archivo .env. Seguir adelante y crear el archivo .env copiándolo de la .env.example archivo.

Contiene valores de configuración que se utilizará en la biblioteca de Auth0.

Usted debe ser capaz de encontrar la mayor parte de la configuración en Aplicaciones > App por Defecto > Configuración de la consola de Auth0. Tenga en cuenta que estoy usando la aplicación predeterminada creada por el sistema. Por supuesto, podría seguir adelante y crear una nueva aplicación si desea hacerlo.

La AUTH0_CALLBACK_URL es la URL de la aplicación donde Auth0 redirigirá a los usuarios después de login y logout. El valor que se establece en este campo debe estar configurado bajo las URL de Devolución de Llamada Permite bajo la configuración de la aplicación del tablero de mandos de Auth0.

Usted encontrará tres archivos principales de implementar la mayor parte de la lógica de autenticación.

  • index.php: esta es la Página principal que muestra el botón de inicio de sesión o cierre de sesión basado en el estado del usuario.
  • login.php: esta secuencia de comandos se iniciará al hacer clic en el botón de inicio de sesión, y redirigirá los usuarios a la interfaz de inicio de sesión de Auth0 para inicio de sesión. Inicio de sesión de post, a ser redirigidos hacia el AUTH0_CALLBACK_URL.
  • logout.php: esta secuencia de comandos se iniciará al hacer clic en el botón Cerrar sesión, y que redirigir a los usuarios a Auth0 en el fondo, registro hacia fuera y regresar a la AUTH0_CALLBACK_URL.

Archivos de Proyecto

Vamos rápidamente a través de cada archivo en el proyecto arranque.

La Secuencia de Comandos de Inicio de Sesión

Empezaremos con el archivo login.php.

Al comienzo, hemos incluido cargadores automáticos que son responsables de cargar las clases relacionadas variable Auth0 y medio ambiente. A continuación, inicializamos las variables de configuración del archivo .env utilizando la función getenv.

A continuación, cree una instancia del objeto Auth0 y llamar al método inicio de sesión que redirige a los usuarios a Auth0 para inicio de sesión. Al iniciar sesión, los usuarios serán redirigidos a nuestro sitio.

Puede iniciar sesión con sus cuentas sociales como Facebook, Google y similares, o crear una nueva cuenta durante inicio de sesión. En cualquier caso, Auth0 creará registros de nuevos usuarios en su extremo. Puede activar diferentes inicios de sesión sociales bajo Conexiones > Social en el tablero de Auth0. También, usted puede comprobar la lista de usuarios que se registran en el uso de Auth0 en el tablero de Auth0 en el enlace de los Usuarios.

La Script de Cierre de Sesión

A continuación, echemos un vistazo al archivo logout.php.

Esto funciona lo mismo que el archivo login.php, excepto que te llamará cuando los usuarios cierran la sesión. Se llama al método logout para caducar un usuario sesión en su aplicación. A continuación, el usuario será redirigido a Auth0 para que el servicio se informa sobre la actividad de cierre de sesión del usuario. Por último, el usuario será redirigido a su aplicación.

El Archivo de Index

Por último, veamos el archivo index.php, que es el punto de entrada de nuestra aplicación.

Aquí, hemos utilizado el método getUser del objeto $auth0 para ver si hay una sesión activa. Si no hay ninguna sesión activa, a mostrar la muestra en enlace, que tiene un usuario a login.php e inicia el flujo de inicio de sesión. Por otro lado, a saludar al usuario y mostrar el enlace de cerrar sesión si el usuario ya está conectado.

Por lo fue la implementación de un flujo de autenticación básica para aplicaciones de servidor.

Garantizar su API Personalizadas Con OAuth2

En esta sección, vamos a ver cómo podría asegurar su API personalizadas aplicando el flujo de donaciones que usan OAuth2 autorización código. Espero que estés familiarizado con la corriente estándar de la ayuda de código de autorización puesto que no entramos en detalles de eso. Revisa algunos de nuestros otros posts aquí en Envato Tuts + si quiere ponerse al día con que usan OAuth2.

En su lugar, enseguida a bucear en la aplicación real. Seguir adelante y crear un archivo auth_code_grant_example.php con el siguiente contenido.

Echemos un vistazo a cómo funciona este código!

Iniciando El Flujo de Autorización

En primer lugar, preparamos un link que envía al usuario al servidor de Auth0 para iniciar el flujo de autorización.

Por favor reemplace {AUDIENCE}{CLIENT_ID}, y {CALLBACK_URL} con los valores correspondientes a su aplicación. El parámetro {AUDIENCE} debe sustituirse por el valor del campo Identificador en APIs > {Su API Aplicación} > Configuración de la consola de Auth0.

{SOME_RANDOM_STRING} debe reemplazarse con un valor único que es difícil de adivinar. Esta cadena se usa para prevenir los ataques CSRF. También, asegúrese de reemplazar {AUTH0_DOMAIN} por el nombre de dominio, como ya comentamos anteriormente.

Conseguir el Acceso Token

Cuando un usuario hace clic en el enlace Sign In, serás llevados al servidor de Auth0 para la autenticación. Después de la autenticación, te pedirá autorizar el acceso a la aplicación a tu perfil. Publicar la autorización, el usuario será redirigido a su aplicación con el código como un parámetro de $_GET.

A continuación, podemos intercambiar este código para obtener el token de acceso.

Como se puede ver, lleva una sola llamada de enrollamiento para traer el acceso token.

Llame a Su Endpoint API Personalizada

Una vez que el token de acceso, puede llamar el extremo API personalizado incluyendo en el encabezado.

Un Extremo API Auth0 Protegidos

El ficticio API recurso archivo demo_api_server.php podría ser algo como esto:

Vamos rápidamente a través de las partes importantes de este código.

Validar el Acceso del Token

Es su responsabilidad para validar el token de acceso entrante antes que permitir el acceso a los recursos protegidos. Y eso es exactamente lo que hemos hecho en el siguiente fragmento de código. Hemos utilizado la clase de utilidad de JWTVerifier para validar el token de acceso.

{SIGNING_ALGORITHM} debe sustituirse por el valor del campo de Firmando Algoritmo en APIs > {Su API Aplicación} > Configuración.

Es así, cómo puede proteger su API personalizadas si desea utilizar el flujo que usan OAuth2 en el servicio de Auth0.

Conclusión

Hoy en día, nos fuimos a través del servicio de Auth0, que proporciona autenticación y autorización como servicio. Después de introducir el servicio de Auth0, pasamos por un par de ejemplos prácticos para demostrar cómo se podría integrar con las aplicaciones PHP.

No dude en enviar sus sugerencias y consultas mediante la alimentación abajo!

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.