Como adicionar o login do Google OAuth a um site com PHP
Se você estiver executando um site onde um usuário pode se registrar, você pode adicionar o recurso de login do Google OAuth. O login do Google em sites adiciona um processo de registro fácil para os usuários. Seus usuários podem usar a conta do Google para se inscrever no seu site. Eles não precisam preencher seu formulário de registro, ativar sua conta por e-mail, etc.
Neste artigo, estudamos como adicionar o recurso de login do Google OAuth ao seu site.
Obtenha suas credenciais
Para começar a usar a API de login do Google, primeiro você precisa criar um projeto no Google e obter suas credenciais. Abaixo estão as etapas que você deve executar para criar o projeto Google.
- Vá para o Google Developer Console.
- Clique no menu suspenso e crie um novo projeto clicando no sinal (+). Como alternativa, você também pode selecionar o projeto existente.
- Selecione seu projeto e clique em ‘HABILITAR APIS E SERVIÇOS’. Na caixa de pesquisa, digite ‘Google+’ e selecione a API do Google+. Habilitá-lo.
- Volte ao painel do seu projeto e selecione Credenciais na barra lateral.
- Na guia Credenciais, clique na lista suspensa Criar credenciais e selecione ID do cliente OAuth.
- Selecione o aplicativo da Web em Tipo de aplicativo. Nos URLs de redirecionamento autorizados, insira o URL
YOUR_DOMAIN_URL/index.php
- Depois de salvá-lo, você obterá a caixa de diálogo junto com seu ID de cliente e o segredo do cliente. Copie essas chaves que serão exigidas nas próximas etapas.
Você pode notar o URL de redirecionamento que definimos no aplicativo. Neste tutorial, lidaremos com o código de retorno de chamada no index.php
. Os usuários são livres para usar qualquer outro arquivo para esta finalidade.
Instalação da Biblioteca HybridAuth
HybridAuth é uma biblioteca PHP de login social de código aberto. Usando esta biblioteca, podemos adicionar um login social para um ou vários provedores como Google, Facebook, Twitter, etc.
Vamos instalar a biblioteca HybridAuth usando um compositor. Crie um composer.json
arquivo na pasta raiz do projeto e adicione o código abaixo nele.
{
"require": {
"hybridauth/hybridauth": "~3.0"
}
}
Em seguida, abra o terminal no diretório raiz do seu projeto e execute o comando:
composer install
Crie o config.php
arquivo e adicione o código abaixo nele para configurar o login do Google.
<?php
require_once 'vendor/autoload.php';
$config = [
'callback' => 'YOUR_DOMAIN_URL/index.php',
'keys' => [
'id' => 'YOUR_CLIENT_ID',
'secret' => 'YOUR_CLIENT_SECRET'
],
'scope' => 'https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email',
'authorize_url_parameters' => [
'approval_prompt' => 'force', // to pass only when you need to acquire a new refresh token.
'access_type' => 'offline'
]
];
$adapter = new HybridauthProviderGoogle( $config );
Certifique-se de substituir os marcadores de posição pelos valores reais. No código acima, passamos YOUR_DOMAIN_URL/index.php
como um valor de retorno de chamada. Ajuste este caminho de acordo com sua necessidade.
Adicionar login do Google OAuth
Estamos todos prontos com nossas configurações e pronto para ir em frente. Então, vamos criar arquivos index.php
e logout.php
no diretório raiz do seu projeto.
index.php
<?php
require_once 'config.php';
try {
$adapter->authenticate();
$userProfile = $adapter->getUserProfile();
print_r($userProfile);
echo '<a href="logout.php">Logout</a>';
}
catch( Exception $e ){
echo $e->getMessage() ;
}
Agora, quando você executa index.php
no navegador, nosso código primeiro verifica se o usuário está autenticado com ‘Google’ ou não. Caso contrário, ele redireciona para a página de login do Google. O usuário deve fazer login com sua conta do Google e, em seguida, redirecionará para o index.php
novamente. Quando o usuário chega à página de login, obtemos o perfil do usuário usando o método getUserProfile()
.
No logout.php
arquivo, só precisamos desconectar o adaptador do Google.
logout.php
<?php
require_once 'config.php';
try {
if ($adapter->isConnected()) {
$adapter->disconnect();
echo 'Logged out the user';
echo '<p><a href="index.php">Login</a></p>';
}
}
catch( Exception $e ){
echo $e->getMessage() ;
}
Esperamos que você possa aprender sobre o login do Google OAuth em um site com PHP. Por favor, compartilhe suas idéias na seção de comentários abaixo.
Artigos relacionados
- Login do Google no Laravel usando Laravel Socialite
- Como integrar o boletim informativo MailChimp no aplicativo Laravel
- Como fazer backup do aplicativo Laravel