Jak dodać logowanie Google OAuth do witryny za pomocą PHP
Jeśli prowadzisz witrynę, w której użytkownik może się zarejestrować, możesz dodać funkcję logowania Google OAuth. Logowanie przez Google w witrynach ułatwia użytkownikom proces rejestracji. Twoi użytkownicy mogą używać swojego konta Google do rejestracji w Twojej witrynie. Nie muszą wypełniać formularza rejestracyjnego, aktywować konta przez e-mail itp.
W tym artykule dowiemy się, jak dodać funkcję logowania Google OAuth do swojej witryny.
Zdobądź swoje poświadczenia
Aby rozpocząć korzystanie z interfejsu API logowania Google, musisz najpierw utworzyć projekt w Google i uzyskać swoje dane uwierzytelniające. Poniżej znajdują się kroki, które należy wykonać, aby utworzyć projekt Google.
- Przejdź do Konsoli programisty Google.
- Kliknij na rozwijane menu i utwórz nowy projekt, klikając znak (+). Alternatywnie możesz również wybrać istniejący projekt.
- Wybierz swój projekt i kliknij „WŁĄCZ API I USŁUGI". W polu wyszukiwania wpisz „Google+” i wybierz interfejs API Google+. Odblokuj to.
- Ponownie przejdź do pulpitu nawigacyjnego projektu i wybierz Poświadczenia z paska bocznego.
- Na karcie Poświadczenia kliknij menu rozwijane Utwórz poświadczenia i wybierz Identyfikator klienta OAuth.
- Wybierz aplikację internetową z Typ aplikacji. W Autoryzowanych przekierowaniach wpisz adres URL
YOUR_DOMAIN_URL/index.php
- Po zapisaniu otrzymasz okno dialogowe wraz z identyfikatorem klienta i kluczem tajnym klienta. Skopiuj te klucze, których będziemy potrzebować w kolejnych krokach.
Możesz zauważyć przekierowanie, które ustawiliśmy w aplikacji. W tym samouczku zajmiemy się kodem wywołania zwrotnego w index.php
. Użytkownicy mogą swobodnie używać w tym celu dowolnego innego pliku.
Instalacja biblioteki HybridAuth
HybridAuth to biblioteka PHP typu open source do logowania społecznościowego. Korzystając z tej biblioteki, możemy dodać login społecznościowy dla jednego lub wielu dostawców, takich jak Google, Facebook, Twitter itp.
Zainstalujmy bibliotekę HybridAuth za pomocą kompozytora. Utwórz composer.json
plik w folderze głównym projektu i dodaj do niego poniższy kod.
{
"require": {
"hybridauth/hybridauth": "~3.0"
}
}
Następnie otwórz terminal w katalogu głównym projektu i uruchom polecenie:
composer install
Utwórz config.php
plik i dodaj poniżej kod, aby skonfigurować logowanie 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 );
Pamiętaj, aby zastąpić symbole zastępcze rzeczywistymi wartościami. W powyższym kodzie przekazaliśmy YOUR_DOMAIN_URL/index.php
jako wartość wywołania zwrotnego. Dostosuj tę ścieżkę zgodnie ze swoimi wymaganiami.
Dodaj login Google OAuth
Wszyscy przygotowaliśmy nasze konfiguracje i dobrze jest iść do przodu. Więc stwórzmy plików index.php
oraz logout.php
w katalogu projektu.
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() ;
}
Teraz po uruchomieniu index.php
w przeglądarce nasz kod najpierw sprawdza, czy użytkownik jest uwierzytelniony przez „Google”, czy nie. Jeśli nie, przekierowuje na stronę logowania Google. Użytkownik musi zalogować się na swoje konto Google, a następnie ponownie przekieruje index.php
. Gdy użytkownik wchodzi na stronę logowania, uzyskujemy profil użytkownika za pomocą metody getUserProfile()
.
W logout.php
pliku wystarczy odłączyć adapter Google.
wyloguj.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() ;
}
Mamy nadzieję, że dowiesz się o logowaniu Google OAuth w witrynie z PHP. Podziel się swoimi przemyśleniami w sekcji komentarzy poniżej.
Powiązane artykuły
- Logowanie Google w Laravel za pomocą Laravel Socialite
- Jak zintegrować biuletyn MailChimp z aplikacją Laravel?
- Jak wykonać kopię zapasową aplikacji Laravel