2012-01-05 15 views
13

Me gustaría utilizar Google OAuth en mi aplicación CakePHP para permitir a los usuarios iniciar sesión con su cuenta de Google. Miré el siguiente componente: http://code.42dh.com/oauth/. De alguna manera no puedo levantarlo y trabajar. No sé lo que estoy haciendo mal. Registré mi aplicación en el formulario de registro de Google y obtuve mi clave de consumidor y secreto de consumidor. Lo agregué en el componente del consumidor. Todavía no consigo que funcione.CakePHP OAuth con Google

Aquí está mi código:

<?php 

class ExampleController extends AppController { 
public $uses = array(); 
var $helpers = array('Javascript', 'Ajax'); 
public $components = array('OauthConsumer'); 

public function google() { 

    $scope = "https://www.google.com/m8/feeds/"; 
    $REQUEST_TOKEN_URL = 'https://www.google.com/accounts/OAuthGetRequestToken?scope=' . urlencode($scope); 

    $requestToken = $this->OauthConsumer->getRequestToken('Google', $REQUEST_TOKEN_URL, 'http://mydomain.com/example/google_callback'); 
    $this->Session->write('google_request_token', $requestToken); 
    $this->redirect('https://www.google.com/accounts/OAuthAuthorizeToken?oauth_token=' . $requestToken->key); 
} 

public function google_callback() { 
    $requestToken = $this->Session->read('google_request_token'); 
    $accessToken = $this->OauthConsumer->getAccessToken('Google', 'https://www.google.com/accounts/OAuthGetAccessToken', $requestToken); 

} 
} 

?> 

Cuando intento para solicitar la requestToken consigo los answes: "firma no válida".

¿Alguien usó Google OAuth en su aplicación cakePHP y estaría dispuesto a darme algunos consejos?

Respuesta

6

Creo que el problema es la cadena de consulta en la URL del token de solicitud. Pruebe lo siguiente:

$REQUEST_TOKEN_URL = 'https://www.google.com/accounts/OAuthGetRequestToken'; 
$requestToken = $this->OauthConsumer->getRequestToken('Google', $REQUEST_TOKEN_URL, 'http://mydomain.com/example/google_callback', 'GET', array('scope' => 'https://www.google.com/m8/feeds')); 
0

se le olvidó la clave de acceso y la url referers API pública autorizada para conectarse con su ID y clave secreta cliend ...

Crear un acceso a la API pública, y agregarlo en la configuración de .

Cuestiones relacionadas