Edición de «Ejemplo de OAuth en KumbiaPHP»
De KumbiaPHP Framework Wiki
Advertencia: no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si inicias sesión o creas una cuenta, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces guarda los cambios para así efectuar la reversión.
Revisión actual | Tu texto | ||
Línea 1: | Línea 1: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Introducción== | ==Introducción== | ||
'''Nota previa''' Este ejemplo fue tomado de la documentación oficial de [http://twitter.com Twitter] / [http://github.com/abraham/twitteroauth/ TwitterOAuth] y adaptado a la arquitectura MVC de KumbiaPHP de forma básica. | '''Nota previa''' Este ejemplo fue tomado de la documentación oficial de [http://twitter.com Twitter] / [http://github.com/abraham/twitteroauth/ TwitterOAuth] y adaptado a la arquitectura MVC de KumbiaPHP de forma básica. | ||
Se ha vuelto común ver sitios webs que ofrecen sus servicios para usuarios utilizando métodos de autenticación bastante convencionales como [http://es.wikipedia.org/wiki/OAuth OAuth], OpenID, etc. para este ejemplo el enfoque estará sobre OAuth. | Se ha vuelto común ver sitios webs que ofrecen sus servicios para usuarios utilizando métodos de autenticación bastante convencionales como [http://es.wikipedia.org/wiki/OAuth OAuth], OpenID, etc. para este ejemplo el enfoque estará sobre OAuth. | ||
− | |||
== Requisitos == | == Requisitos == | ||
Como este ejemplo se basa en twitter es primordial tener una cuenta creada en este sistema de bloging, si aún no tienes ya es hora que te [http://twitter.com registrates] en Twitter. y seas un seguidor(followers) de [http://twitter.com/KumbiaPHP @KumbiaPHP] | Como este ejemplo se basa en twitter es primordial tener una cuenta creada en este sistema de bloging, si aún no tienes ya es hora que te [http://twitter.com registrates] en Twitter. y seas un seguidor(followers) de [http://twitter.com/KumbiaPHP @KumbiaPHP] | ||
− | Descargar la librería [http://github.com/abraham/twitteroauth/ TwitterOAuth], descomprimela y copia los ficheros '''OAuth.php''' y '''TwitterOAuth.php''' en ''/app/libs/'' de tu arbol de directorios de KumbiaPHP. | + | Descargar la librería [http://github.com/abraham/twitteroauth/ TwitterOAuth], descomprimela y copia los ficheros '''OAuth.php''' y '''TwitterOAuth.php''' en ''/app/libs/'' de tu arbol de directorios de KumbiaPHP. |
[http://twitter.com/apps Registra también tu aplicación], indicando que es de tipo de aplicación Navegador (Browser), indica el tipo de permiso que necesitas (ReadOnly o ReadWrite), y marca el checkbox final, para indicar que usaremos Twitter para hacer inicios de sesión. | [http://twitter.com/apps Registra también tu aplicación], indicando que es de tipo de aplicación Navegador (Browser), indica el tipo de permiso que necesitas (ReadOnly o ReadWrite), y marca el checkbox final, para indicar que usaremos Twitter para hacer inicios de sesión. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
creamos un controlador, usando el codigo de la documentación de TwitterOAuth como base: | creamos un controlador, usando el codigo de la documentación de TwitterOAuth como base: | ||
''app/controllers/oauth_controller.php'' | ''app/controllers/oauth_controller.php'' | ||
Línea 43: | Línea 18: | ||
<?php | <?php | ||
Load::lib("TwitterOAuth"); | Load::lib("TwitterOAuth"); | ||
− | class OAuthController extends | + | class OAuthController extends ApplicationController |
{ | { | ||
protected $consumerKey; | protected $consumerKey; | ||
Línea 49: | Línea 24: | ||
protected $callBack; | protected $callBack; | ||
− | public function | + | public function initialize() { |
/* Esto es mio, ya que tengo los valores en la base de datos, lo dejo para servir de ejemplo | /* Esto es mio, ya que tengo los valores en la base de datos, lo dejo para servir de ejemplo | ||
$rows = $this->Configuration->find("name LIKE '%oauth%' ORDER BY name ASC"); | $rows = $this->Configuration->find("name LIKE '%oauth%' ORDER BY name ASC"); | ||
Línea 66: | Línea 41: | ||
if (empty($_SESSION['access_token']) || empty($_SESSION['access_token']['oauth_token']) || empty($_SESSION['access_token']['oauth_token_secret'])) | if (empty($_SESSION['access_token']) || empty($_SESSION['access_token']['oauth_token']) || empty($_SESSION['access_token']['oauth_token_secret'])) | ||
{ | { | ||
− | + | $this->render(NULL); | |
− | + | $this->redirect("oauth/_register"); | |
} | } | ||
Línea 75: | Línea 50: | ||
/* If access tokens are not available redirect to connect page. */ | /* If access tokens are not available redirect to connect page. */ | ||
if (empty($access_token['oauth_token']) || empty($access_token['oauth_token_secret'])) { | if (empty($access_token['oauth_token']) || empty($access_token['oauth_token_secret'])) { | ||
− | header('Location: http:// | + | header('Location: http://twitbot.gmbros.net/oauth/_register/'); |
} | } | ||
Línea 85: | Línea 60: | ||
if ($credentials->error) { | if ($credentials->error) { | ||
− | $this->msg = $credentials->error."<br><br><a href='http:// | + | $this->msg = $credentials->error."<br><br><a href='http://twitbot.gmbros.net/oauth/_register'>Register now</a>"; |
} | } | ||
else { | else { | ||
− | $this->msg = "Acceso confirmado, OAuth correcto. Bienvenido ".$credentials->screen_name.".<br><br><a href='http:// | + | $this->msg = "Acceso confirmado, OAuth correcto. Bienvenido ".$credentials->screen_name.".<br><br><a href='http://twitbot.gmbros.net/oauth/_logout'>Logout</a>"; |
} | } | ||
} | } | ||
Línea 127: | Línea 102: | ||
session_start(); | session_start(); | ||
session_destroy(); | session_destroy(); | ||
− | + | $this->render(NULL); | |
− | + | $this->redirect("oauth/index"); | |
} | } | ||
Línea 171: | Línea 146: | ||
− | Por último, creamos las vistas: | + | * Por último, creamos las vistas: |
''views/oauth/index.phtml'': | ''views/oauth/index.phtml'': | ||
<source lang=php > | <source lang=php > | ||
Línea 179: | Línea 154: | ||
''views/oauth/_register.phtml'': | ''views/oauth/_register.phtml'': | ||
<source lang=php > | <source lang=php > | ||
− | <a href="http:// | + | <a href="http://twitbot.gmbros.net/oauth/_redirect/"><img src="/img/lighter.png" alt="Sign in with Twitter"/></a> |
</source> | </source> | ||
− | |||
− | |||
− | + | * Ya esta! Ahora ya puedes visitar la URL de tu controlador en http://''<tudominio>''/oauth y probarlo. La primera vez se te pedirá autorizar a la aplicación, pero una vez hecho, ya no hará falta. | |
− | |||
− | |||
− | + | Para cualquier duda, podeis enviarme un email o buscarme por el IRC. | |
− | |||
− | |||
− | |||
− | |||
Saludos, | Saludos, |