Web uygulamalarında Google ile giriş yapmak, kullanıcıların hızlı ve güvenli bir şekilde kimlik doğrulaması yapmasına olanak tanır. Google OAuth 2.0 teknolojisini kullanarak, PHP projelerinde Laravel, CodeIgniter ve MVC yapıları ile Google giriş entegrasyonunun nasıl yapıldığını bu makalede ele alacağız.
1. Google OAuth 2.0 Nedir?
Google OAuth 2.0, kullanıcıların Google hesaplarıyla başka web uygulamalarında kimlik doğrulaması yapmalarını sağlayan güvenli bir kimlik doğrulama yöntemidir.
✔️ Kullanıcı adı ve şifre girmeden oturum açma
✔️ Güvenli API erişimi sağlar
✔️ Kullanıcı verilerini doğrulama sürecini hızlandırır
2. Google API ile Giriş İçin Gerekli Adımlar
Google ile giriş yapmak için aşağıdaki adımları takip etmeliyiz:
1️⃣ Google Developer Console Ayarları
- Google Developer Console adresine gidin.
- Yeni bir proje oluşturun.
- API ve Hizmetler > Kimlik Bilgileri sekmesine gidin.
- OAuth 2.0 İstemci Kimliği oluşturun.
- Yetkili Yönlendirme URI’si olarak uygulamanızın URL’sini ekleyin.
- İstemci Kimliği ve İstemci Gizli Anahtarını kaydedin.
3. Laravel ile Google Giriş Entegrasyonu
Laravel projelerinde Google ile giriş yapmak için Laravel Socialite paketi kullanılır.
1️⃣ Socialite Paketinin Kurulumu
Öncelikle Socialite paketini yükleyelim:
composer require laravel/socialite
Ardından config/services.php dosyasına Google API bilgilerini ekleyin:
'google' => [
'client_id' => env('GOOGLE_CLIENT_ID'),
'client_secret' => env('GOOGLE_CLIENT_SECRET'),
'redirect' => env('GOOGLE_REDIRECT_URL'),
],
.env dosyanıza aşağıdaki bilgileri ekleyin:
GOOGLE_CLIENT_ID=your-client-id
GOOGLE_CLIENT_SECRET=your-client-secret
GOOGLE_REDIRECT_URL=http://your-app.com/auth/google/callback
2️⃣ Giriş İşlemi İçin Route ve Controller Ekleme
routes/web.php dosyanıza aşağıdaki rotaları ekleyin:
use App\Http\Controllers\GoogleController;
Route::get('/auth/google', [GoogleController::class, 'redirectToGoogle']);
Route::get('/auth/google/callback', [GoogleController::class, 'handleGoogleCallback']);
GoogleController.php dosyanızda işlemleri gerçekleştirin:
space App\Http\Controllers;
use Laravel\Socialite\Facades\Socialite;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
class GoogleController extends Controller
{
public function redirectToGoogle()
{
return Socialite::driver('google')->redirect();
}
public function handleGoogleCallback()
{
$googleUser = Socialite::driver('google')->user();
$user = User::updateOrCreate([
'email' => $googleUser->getEmail()
], [
'name' => $googleUser->getName(),
'google_id' => $googleUser->getId(),
'avatar' => $googleUser->getAvatar(),
]);
Auth::login($user);
return redirect()->route('dashboard');
}
}
Bu kodlar sayesinde Laravel projelerinde Google ile giriş tamamlanmış olur.
4. CodeIgniter ile Google Giriş Entegrasyonu
CodeIgniter için Google API Client kütüphanesi kullanılır.
1️⃣ Google API Client Paketinin Kurulumu
Öncelikle kütüphaneyi yükleyin:
composer require google/apiclient
Config/Google.php dosyasına Google kimlik bilgilerini ekleyin:
$config['google_client_id'] = 'your-client-id';
$config['google_client_secret'] = 'your-client-secret';
$config['google_redirect_uri'] = 'http://your-app.com/auth/google/callback';
2️⃣ Controller Dosyası Oluşturma
Controllers/GoogleAuth.php dosyanızı oluşturun:
namespace App\Controllers;
use Google_Client;
use Google_Service_Oauth2;
class GoogleAuth extends BaseController
{
public function login()
{
$client = new Google_Client();
$client->setClientId(config('Google')->google_client_id);
$client->setClientSecret(config('Google')->google_client_secret);
$client->setRedirectUri(config('Google')->google_redirect_uri);
$client->addScope('email');
$client->addScope('profile');
return redirect()->to($client->createAuthUrl());
}
public function callback()
{
$client = new Google_Client();
$client->setClientId(config('Google')->google_client_id);
$client->setClientSecret(config('Google')->google_client_secret);
$client->setRedirectUri(config('Google')->google_redirect_uri);
if ($this->request->getVar('code')) {
$client->fetchAccessTokenWithAuthCode($this->request->getVar('code'));
$oauth = new Google_Service_Oauth2($client);
$googleUser = $oauth->userinfo->get();
session()->set([
'user_name' => $googleUser->name,
'user_email' => $googleUser->email,
'user_picture' => $googleUser->picture,
'logged_in' => true
]);
return redirect()->to('/dashboard');
}
}
}
Bu işlem ile CodeIgniter projelerinde Google ile giriş aktif hale gelir.
5. MVC Yapısında Google ile Giriş Nasıl Yapılır?
MVC (Model-View-Controller) yapısında Google ile giriş yapmak için:
- Model: Kullanıcı bilgilerini kaydetmek
- View: Google giriş butonu göstermek
- Controller: OAuth doğrulamasını yönetmek
Controller Örneği:
class AuthController extends Controller
{
public function loginWithGoogle()
{
// Google OAuth giriş işlemi burada gerçekleştirilir.
}
}
View Örneği:
<a href="auth/google">Google ile Giriş Yap</a>
Model Örneği:
class UserModel extends Model
{
protected $table = 'users';
}
Bu yapı, Google giriş işlemlerini yönetmek için MVC prensiplerine uygun bir çözüm sunar.
Sonuç
Google ile giriş yapmak, kullanıcıların hızlı ve güvenli bir şekilde kimlik doğrulaması yapmasını sağlar. Laravel, CodeIgniter ve MVC yapılarında OAuth 2.0 ile entegrasyon sağlamak için:
✔️ Google Developer Console’dan kimlik bilgileri alınmalı
✔️ API’ler ve kütüphaneler kullanılarak Google kimlik doğrulama işlemi yönetilmeli
✔️ Veritabanına kayıt işlemi yapılmalı ve oturum başlatılmalı
Siz de projenize Google ile giriş özelliği ekleyerek kullanıcı deneyimini artırabilirsiniz! 🚀