OAuth con Google
Con este término nos referimos a aplicaciones web que requieren de la aportación de otras aplicaciones para su funcionamiento a través de API's de terceros.
Ante esta posibilidad caben dos alternativas:
Usar una API o conjunto de librerías creadas para un lenguaje determinado (php, java, .NET)
Podemos usar un servicio o API web basado en un estándar como json o xml.
0Auth
Segun el estándar https://tools.ietf.org/html/rfc6749, 0Auth permite el acceso a aplicaciones de terceros a servicios HTTP, servicios web, o para que una aplicación acceda a un servicio web en representación del propietario del recurso.
Montar un API que gestione su acceso mediante 0Auth sería muy interesante pero por cuestiones de tiempo no ha sido posible en este curso.
Lo que sí podemos hacer es hacer uso de 0Auth como clientes. Un uso muy habitual es hacerlo para obtener las credenciales de un usuario ofrecidas por servicios de autenticación de terceros: Google, GitHub, Facebook, Twitter, ...
Login a través de Google.
Vamos a permitir el acceso a nuestra aplicación de forma que sea Google quien certifique quien es el usuario que está solicitando acceso a nuestra aplicación.
Vamos a hacerlo a partir de un componente de Laravel: el paquete Socialite. Veamos como hacerlo:
Actualizar laravel. Ver manual. https://laravel.com/docs/5.4/upgrade
Obtener credenciales google
Registrarlas en config/services.php
Activar la Google+ API en https://console.developers.google.com/apis/library
Añadir el paquete Socialite a Laravel: https://github.com/laravel/socialite
Crear el controlador SocialAuthController con artisan y añadir estos métodos
El método redirect va asociado a una ruta.
El método callback es invocado desde la ruta de callback registrada en Google
El fichero de rutas podría ser algo así:
Para completar el código del anterior controlador:
Last updated
Was this helpful?