design

Laravel’de Social Media Login Entegrasyonu

March 24, 2025

Merhaba arkadaşlar, bugün sizlere Laravel’de sosyal medya girişi (social media login) entegrasyonunu anlatacağım. Sosyal medya girişi, kullanıcıların Facebook, Google, Twitter gibi platformlar üzerinden uygulamanıza kolayca giriş yapmasını sağlar. Bu, kullanıcı deneyimini iyileştirir ve kayıt sürecini hızlandırır. Laravel, bu entegrasyonu kolayca yapmanız için Socialite paketini sunar. Gelin, bu konuları adım adım inceleyelim.


Socialite Paketi Nedir?

Socialite, Laravel’in sosyal medya girişi entegrasyonu için sunduğu resmi bir pakettir. Bu paket, Facebook, Google, Twitter, GitHub, LinkedIn ve daha birçok platform üzerinden kullanıcı girişi yapmanızı sağlar. Socialite, OAuth 2.0 protokolünü kullanarak güvenli bir şekilde kullanıcı bilgilerini alır.


Socialite Paketini Kurma

Socialite paketini projenize eklemek için aşağıdaki komutu çalıştırın:

composer require laravel/socialite


Paketi kurduktan sonra, config/services.php dosyasında sosyal medya platformlarının kimlik bilgilerini tanımlayın. Örneğin, Google için:


'google' => [
    'client_id' => env('GOOGLE_CLIENT_ID'),
    'client_secret' => env('GOOGLE_CLIENT_SECRET'),
    'redirect' => env('GOOGLE_REDIRECT_URI'),
],

Bu bilgileri, Google Developer Console’dan alabilirsiniz. .env dosyasında bu değerleri tanımlayın:


GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret
GOOGLE_REDIRECT_URI=http://your-app.com/auth/google/callback


Route ve Controller Oluşturma

Sosyal medya girişi için route ve controller oluşturmanız gerekiyor. Örneğin, Google girişi için:

Route Tanımı:

use App\Http\Controllers\Auth\SocialLoginController;

Route::get('/auth/google', [SocialLoginController::class, 'redirectToGoogle']);
Route::get('/auth/google/callback', [SocialLoginController::class, 'handleGoogleCallback']);


Controller Kodu:

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Laravel\Socialite\Facades\Socialite;
use App\Models\User;
use Illuminate\Support\Facades\Auth;

class SocialLoginController extends Controller
{
    public function redirectToGoogle()
    {
        return Socialite::driver('google')->redirect();
    }

    public function handleGoogleCallback()
    {
        $googleUser = Socialite::driver('google')->user();

        $user = User::firstOrCreate(
            ['email' => $googleUser->email],
            [
                'name' => $googleUser->name,
                'password' => bcrypt(Str::random(16)),
            ]
        );

        Auth::login($user);

        return redirect('/dashboard');
    }
}


Bu kod, Google girişi için kullanıcıyı yönlendirir ve geri döndüğünde kullanıcı bilgilerini alır. Eğer kullanıcı daha önce kayıtlı değilse, otomatik olarak kaydeder ve giriş yapar.


Blade Template’de Sosyal Medya Giriş Butonları

Blade template’de sosyal medya giriş butonları oluşturmak için aşağıdaki gibi bir yapı kullanabilirsiniz:


<!-- resources/views/auth/login.blade.php -->
<a href="{{ url('/auth/google') }}" class="btn btn-google">
    <i class="fab fa-google"></i> Google ile Giriş Yap
</a>

Bu kod, Google girişi için bir buton oluşturur.


Diğer Platformlar için Entegrasyon

Socialite, Facebook, Twitter, GitHub gibi diğer platformlar için de benzer bir yapı sunar. Örneğin, Facebook girişi için:


Route Tanımı:

Route::get('/auth/facebook', [SocialLoginController::class, 'redirectToFacebook']);
Route::get('/auth/facebook/callback', [SocialLoginController::class, 'handleFacebookCallback']);


Controller Kodu:

public function redirectToFacebook()
{
    return Socialite::driver('facebook')->redirect();
}

public function handleFacebookCallback()
{
    $facebookUser = Socialite::driver('facebook')->user();

    $user = User::firstOrCreate(
        ['email' => $facebookUser->email],
        [
            'name' => $facebookUser->name,
            'password' => bcrypt(Str::random(16)),
        ]
    );

    Auth::login($user);

    return redirect('/dashboard');
}


Bu kod, Facebook girişi için benzer bir yapı sunar.

Laravel’de Social Media Login’in Avantajları

  • Kullanıcı Deneyimi: Kullanıcılar, sosyal medya hesapları ile kolayca giriş yapabilir.
  • Hız: Kayıt sürecini hızlandırır ve kullanıcıların uygulamanıza erişimini kolaylaştırır.
  • Güvenlik: OAuth 2.0 protokolü sayesinde güvenli bir şekilde kullanıcı bilgileri alınır.


Laravel’de sosyal medya girişi entegrasyonu, kullanıcı deneyimini iyileştirmenin ve kayıt sürecini hızlandırmanın en etkili yollarından biridir. Eğer kullanıcılarınızın uygulamanıza kolayca erişmesini sağlamak istiyorsanız, Socialite paketini mutlaka kullanmalısınız. Bir sonraki yazımda, Laravel’de Payment Gateway Entegrasyonu: Stripe ve PayPal konusuna değineceğim. Görüşmek üzere!

6 + 3 =