Ir para conteúdo
Fórum Script Brasil
  • 0

getQuery do cakephp não está pegar parâmetro na url


Kafury Pael

Pergunta

Eu tenho um sistema em CakePHP que realiza o login com uma conta do Google e em seguida retorna para a página inicial. A página www.mysite.com/login/google identifica que o parâmetro code não tem um valor e redireciona para a página de login do Google, o que está correto. No entanto, quando ele confirma o login e redireciona para www.mysite.com/login/google?code=1234, o sistema não reconhece que o parâmetro code possui valor e redireciona novamente para a página de login do Google. Abaixo está o código do controller:

 

namespace App\Controller;

use App\Controller\AppController;
use Cake\Http\Client;
use Cake\Http\ServerRequest;
use App\Model\Table\TusuarioTable;
use Cake\ORM\TableRegistry;

class GoogleLoginController extends AppController
{
    public function login($code_id = null)
    {

        $this->request->allowMethod(['get','post', 'put']);

        // Configurações do Google OAuth
        $google_oauth_client_id = '968-hufqt7bpp16tsmbd8qoal5posu38o9g9.apps.googleusercontent.com';
        $google_oauth_client_secret = 'GOCSU_zuK';
        $google_oauth_redirect_uri = 'https://sistemasweb.com/login/google';
        $google_oauth_version = 'v3';

        $code_id = $this->request->getQuery('code');

        //var_dump($_GET); exit;
       
        // Se o código de autorização estiver presente na URL
        if (isset($code_id)) {
            // Executar solicitação para obter o token de acesso

            echo "CODE: ".$code_id; exit;
        } else {
            // Redirecionar para a página de autorização do Google
            $params = [
                'response_type' => 'code',
                'client_id' => $google_oauth_client_id,
                'redirect_uri' => $google_oauth_redirect_uri,
                'scope' => 'https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile',
                'access_type' => 'offline',
                'prompt' => 'consent'
            ];

            return $this->redirect('https://accounts.google.com/o/oauth2/auth?' . http_build_query($params));
        }
    }

    public function logout()
    {
        $this->request->getSession()->delete('google_loggedin');
        $this->request->getSession()->delete('google_email');
        $this->request->getSession()->delete('google_name');
        $this->request->getSession()->delete('google_picture');

        // Redirecionar para a página de login ou outra página relevante
        return $this->redirect(['controller' => 'Pages', 'action' => 'home']);
    }
}

 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...