Google OAuth 2.0, modern web uygulamalarında kullanıcı kimlik doğrulama işlemlerini güvenli ve standart hale getiren bir protokoldür. PHP tabanlı projelerde bu protokolü kullanmak, kullanıcıların Google hesaplarıyla giriş yapmasını sağlayarak kullanıcı deneyimini artırır. Bu rehberde, Google OAuth 2.0'ı PHP projelerine entegre etmek için gereken adımları detaylıca anlatacağım.
İlk olarak, Google Developer Console üzerinde bir proje oluşturup API erişimini aktif hale getirmeniz gerekiyor. Bu süreçte, OAuth 2.0 istemci kimliği ve gizli anahtarları temin edeceksiniz.
Adım 1: Google Cloud Platform’da proje ve OAuth 2.0 istemci kimliği oluşturmak
- Google Cloud Console’a giriş yapın.
- Yeni bir proje başlatın veya mevcut projeyi seçin.
- "API ve Hizmetler" bölümünden "Kimlik Bilgileri" sekmesine gidin.
- "Kimlik Bilgisi Oluştur" butonuna tıklayın ve "OAuth istemci kimliği" seçeneğini seçin.
- Uygulama türü olarak "Web uygulaması" seçin ve yetkilendirilmiş redirect URI’leri belirleyin. (örneğin, https://site.com/callback.php)
Adım 2: PHP kodu ve yapılandırma
Google API PHP Client Library'yi Composer veya manuel olarak ekleyebilirsiniz. Composer kullanıyorsanız:
1composer require google/apiclient:"^2.0"
Oluşturduğunuz client kimliği ve gizli anahtarları ile aşağıdaki örnek kodu yapılandırabilirsiniz:
12345678910111213141516171819202122232425262728[php]
require_once 'vendor/autoload.php';
session_start();
$client = new Google_Client();
$client->setAuthConfig('credentials.json'); // İstemci kimlik bilgileri dosyası
$client->setRedirectUri('https://site.com/callback.php');
$client->addScope('email');
$client->addScope('profile');
if (!isset($_GET['code'])) {
// Kullanıcı giriş yapmamışsa, Google signin sayfasına yönlendirin
$authUrl = $client->createAuthUrl();
header('Location: ' . $authUrl);
exit();
} else {
// Kullanıcı izin verdiyse, token alın
$token = $client->fetchAccessTokenWithAuthCode($_GET['code']);
$_SESSION['access_token'] = $token;
$oauth2 = new Google_Service_Oauth2($client);
$userInfo = $oauth2->userinfo->get();
// Kullanıcı bilgilerini kullanabilirsiniz
echo 'Hoşgeldiniz, ' . $userInfo->name;
}
[/php]
Bu kod, temel OAuth akışını başlatıp kullanıcı izin verdikten sonra kullanıcı bilgilerini almanıza olanak tanır. Güvenlik ve güvenilirlik açısından, token’ları uygun şekilde saklamak ve yenilemek önemlidir. Ayrıca, OAuth işlemini tamamen sunucu tarafında ve HTTPS üzerinden gerçekleştirmek gerekir.
Bu entegrasyon, güvenli ve kullanıcı dostu bir giriş sistemi kurmanın temel taşlarından biridir. Güçlü kimlik doğrulama ve API kullanımı konusunda detaylı ve güncel dokümantasyonları Google Developer sitesinden takip etmek, uygulamanızın güvenliğini artıracaktır.