PHP, Laravel ve CodeIgniter ile Google ile Giriş (OAuth 2.0) Entegrasyonu

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! 🚀

Previous Article

Sektörlere Özel Web ve Yazılım Çözümleri

Next Article

SMTP Mail Ayarları: Sunucu ve Yazılım Bazlı Yapılandırma

Yorum yaz

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir