Ir para conteúdo
Fórum Script Brasil

Kafury Pael

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre Kafury Pael

Kafury Pael's Achievements

0

Reputação

  1. 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']); } }
×
×
  • Criar Novo...