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: | ||
− | + | '''Nota previa''' Este ejemplo esta sacado de la documentacion de [http://twitter.com Twitter] / [http://github.com/abraham/twitteroauth/ TwitterOAuth] y adaptado a un controlador/vista de KumbiaPHP de forma básica. Es un '''punto de partida''' para muchos ya que he visto bastante gente pegandose con OAuth en el IRc y preguntando. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | * Descargar la libreria [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. | |
− | + | * Si no lo has hecho ya, [http://twitter.com registrate] en Twitter. | |
− | |||
− | |||
+ | * [http://twitter.com/apps Registra también tu aplicación], indicando que el tipo de aplicación es via 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. | ||
− | |||
− | + | * Ahora creamos un controlador, usando el codigo de la documentación de TwitterOAuth como base: | |
− | + | ''app/controllers/oauth/oauth_controller.php'' | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | creamos un controlador, usando el codigo de la documentación de TwitterOAuth como base: | ||
− | ''app/controllers/oauth_controller.php'' | ||
<source lang=php > | <source lang=php > | ||
<?php | <?php | ||
Load::lib("TwitterOAuth"); | Load::lib("TwitterOAuth"); | ||
− | class OAuthController extends | + | class OAuthController extends ApplicationController |
{ | { | ||
protected $consumerKey; | protected $consumerKey; | ||
Línea 49: | Línea 22: | ||
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 39: | ||
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 48: | ||
/* 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 58: | ||
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 100: | ||
session_start(); | session_start(); | ||
session_destroy(); | session_destroy(); | ||
− | + | $this->render(NULL); | |
− | + | $this->redirect("oauth/index"); | |
} | } | ||
Línea 171: | Línea 144: | ||
− | 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 152: | ||
''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, |