A autenticação de usuários será realizada com o Socialite buscando as informações no Facebook. Vamos instalar as dependências do Socialite com o comando abaixo:
composer require laravel/socialite
Adicione as seguines linhas no arquivo ‘config/services.php’:
'facebook' => [
'client_id' => env('FACEBOOK_CLIENT_ID'),
'client_secret' => env('FACEBOOK_CLIENT_SECRET'),
'redirect' => env('APP_URL') . '/login/facebook/callback',
],
Para criar uma nova aplicação para efetuar login com o Facebook, basta acessar o link e preencher os campos:
Nome da aplicação: Reiniciando – Financeiro
URL do site: https://reiniciando.maksoud.dev/
Agora você já tem o ‘ID do Aplicativo’ e a ‘Chave Secreta do Aplicativo’. É necessário que você preencha os campos ‘Domínios do Aplicativo’, ‘URL da Política de Privacidade’ e ‘URL dos Termos de Serviço’, escolha a categoria e marque a opção ‘Apoiar minha própria empresa’.
Em configurações, você vai encontrar os seguintes campos:
URL de redirecionamento para verificar / Valid OAuth Redirect URIs: https://reiniciando.maksoud.dev/public/login/facebook/callback
Dentro do arquivo ‘.env’ adicione as duas chaves e atualize o campo com a URL do aplicativo, conforme exemplo abaixo:
APP_URL=https://reiniciando.maksoud.dev/public (Atualizar essa linha)
FACEBOOK_CLIENT_ID=[insira_o_client_ID]
FACEBOOK_CLIENT_SECRET=[insira_o_client_secret]
Vamos criar o Controller através do comando Artisan:
php artisan make:controller SocialiteController
Dentro do arquivo recém criado em ‘app/Http/Controllers/SocialiteController.php’ adicione as seguintes linhas:
use Laravel\Socialite\Facades\Socialite;
class SocialiteController extends Controller
{
/**
* Redirect the user to the Facebook authentication page.
*
* @return \Illuminate\Http\Response
*/
public function redirectToProvider()
{
return Socialite::driver('facebook')->redirect();
}
/**
* Obtain the user information from Facebook.
*
* @return \Illuminate\Http\Response
*/
public function handleProviderCallback()
{
$user = Socialite::driver('facebook')->user();
if ($name = $user->getName()) {
echo "Nome: {$name} <br>";
}//if ($name = $user->getName())
if ($nickname = $user->getNickname()) {
echo "Apelido: {$nickname} <br>";
}//if ($nickname = $user->getNickname())
if ($email = $user->getEmail()) {
echo "E-mail: {$email} <br>";
}
if ($avatar = $user->getAvatar()) {
echo "<img src='{$avatar}' alt='Avatar' style='border-radius:50%;max-width:200px;'> <br>";
}
// $user->token;
}
}
Agora adicione as rotas em ‘routes/web.php’:
Route::get('login/facebook', 'SocialiteController@redirectToProvider');
Route::get('login/facebook/callback', 'SocialiteController@handleProviderCallback');
Quando chamada a URL https://reiniciando.maksoud.dev/public/login/facebook no navegador o retorno deverá ser algo semelhante a imagem abaixo:
Esse projeto possui todo o código disponível em https://github.com/Maksoud/reiniciando e o projeto está hospedado em https://reiniciando.maksoud.dev/. Deixe seu comentário abaixo e colabore com esse projeto.
Você precisa fazer o login para publicar um comentário.