Un escenario común es iniciar una sesión mediante una cuenta externa como Google+, Twitter o Facebook.
En este código mostraré como hacerlo con Google+ API
Primero necesitas registrar el API en https://code.google.com/apis/console/, registrar el servicio de Google+ API y crear una nueva aplicación, en el campo de “Redirect URI” necesitas escribir la ruta del script y lo siguiente: “googleplus.php?op=redirect
“, comentaré el porqué después; después que veas el código podrás separarlo en rutas o scripts más elegantes.
En la aplicación generada, necesitarás los campos de Redirection URI y Client ID
Google OAuth funciona de la siguiente manera:
- Generar una URL usando los parámetros de los servicios que quieres acceder (
scope
) y tu Client ID y Redirection URI - Necesitas redireccionar al usuario a esta URL
- Después que el usuario ha ingresado, el sistema te redireccionará a la URL que proporcionaste con parametros hash (
googleplus.php?op=redirect#access_token=....
), así que no verás esto en el servidor; puedes pasarlo a tu servidor mediante AJAX o en este caso mediante una petición GET
En el código el parámetro “?op=redirect
” mostrará una página blanca con un código en javascript para convertir el hash en una petición GET
; esto pemitirá obtener en el servidor el parámetro access_token
que usarás para verificar mediante Google+ si es válido.
Esta parte del código lo hace:
<?php $access_token = $_GET['access_token']; //verificar si es real $data = @file_get_contents("https://www.googleapis.com/plus/v1/people/me?access_token={$access_token}"); if ($data) { print $data; } else { print "Token no valido!"; }
El código no está preparado para manejar errores (lo mostrará como un parámetro $_GET['error']
) así que necesitas manejar eso en tu caso.
Ligas:
- https://github.com/danguer/blog-examples/blob/master/php/oauth/googleplus.php (Código para iniciar sesión)
- https://code.google.com/apis/accounts/docs/OAuth2.html (Implementación de Google OAuth)
- https://developers.google.com/+/api/ (Google+ API)