Laravel Socialite Einrichten
Laravel Socialite Einrichten, Laravel Socialite bietet eine einfache Möglichkeit zur Authentifizierung mit Social Media Plattformen wie Facebook, Google, Twitter, und GitHub. Diese Anleitung führt dich durch die Einrichtung und Konfiguration von Laravel Socialite in einem Laravel-Projekt.
Voraussetzungen
Eine Laravel-Installation (vorausgesetzt, du hast bereits ein Laravel-Projekt eingerichtet)
Composer installiert
Schritt 1: Installation von Laravel Socialite
Zuerst musst du Laravel Socialite mithilfe von Composer in deinem Laravel-Projekt installieren:
composer require laravel/socialite
Schritt 2: Konfiguration
2.1 Service Provider und Alias
Falls du Laravel 5.4 oder älter verwendest, musst du den Service Provider und den Alias in der config/app.php Datei registrieren. Bei neueren Versionen von Laravel ist dies nicht mehr notwendig, da der Service Provider automatisch geladen wird.
'providers' => [
// Andere Service-Provider
Laravel\Socialite\SocialiteServiceProvider::class,
],
'aliases' => [
// Andere Aliases
'Socialite' => Laravel\Socialite\Facades\Socialite::class,
],
2.2 Environment-Datei
Füge deine Social Media App-Schlüssel und Geheimnisse in deine .env Datei ein. Zum Beispiel für GitHub:
GITHUB_CLIENT_ID=dein-github-client-id
GITHUB_CLIENT_SECRET=dein-github-client-secret
GITHUB_REDIRECT_URI=https://deine-domain.com/auth/github/callback
Schritt 3: Hinzufügen der Socialite-Anbieter-Konfigurationen
Füge die entsprechenden Anbieter-Konfigurationen zu deiner config/services.php Datei hinzu:
return [
// Andere Service-Konfigurationen
'github' => [
'client_id' => env('GITHUB_CLIENT_ID'),
'client_secret' => env('GITHUB_CLIENT_SECRET'),
'redirect' => env('GITHUB_REDIRECT_URI'),
],
// Weitere Anbieter wie 'facebook', 'google' etc. können hier hinzugefügt werden
];
Schritt 4: Erstellen der Auth-Routen
Füge die Routen für die Social-Login-Anbieter in deiner routes/web.php Datei hinzu:
use Laravel\Socialite\Facades\Socialite;
use App\Http\Controllers\Auth\SocialiteController;
Route::get('auth/github', [SocialiteController::class, 'redirectToProvider']);
Route::get('auth/github/callback', [SocialiteController::class, 'handleProviderCallback']);
Schritt 5: Erstellen des Socialite Controllers
Erstelle einen Controller für die Socialite-Authentifizierung:
php artisan make:controller Auth/SocialiteController
Füge die folgenden Methoden in den erstellten Controller (app/Http/Controllers/Auth/SocialiteController.php) ein:
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Laravel\Socialite\Facades\Socialite;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
class SocialiteController extends Controller
{
/**
* Redirect the user to the GitHub authentication page.
*
* @return \Illuminate\Http\Response
*/
public function redirectToProvider()
{
return Socialite::driver('github')->redirect();
}
/**
* Obtain the user information from GitHub.
*
* @return \Illuminate\Http\Response
*/
public function handleProviderCallback()
{
$githubUser = Socialite::driver('github')->stateless()->user();
$user = User::updateOrCreate(
[
'email' => $githubUser->getEmail(),
],
[
'name' => $githubUser->getName(),
'password' => Hash::make(str_random(24)), // Sicherstellen, dass ein Passwort gesetzt wird
'github_id' => $githubUser->getId(), // Hinzufügen falls du github_id Spalte in der Datenbank hast
]
);
Auth::login($user, true);
return redirect('/home');
}
}
Schritt 6: Migration anpassen
Falls notwendig, füge eine Spalte für die Anbieter-ID zu deiner users Tabelle hinzu. Du kannst dies durch das Erstellen einer neuen Migration tun:
php artisan make:migration add_github_id_to_users_table --table=users
Bearbeite die Migration -
database/migrations/xxxx_xx_xx_xxxxxx_add_github_id_to_users_table.php
um die neue Spalte hinzuzufügen:
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->string('github_id')->nullable()->unique();
});
}
public function down()
{
Schema::table('users', function (Blueprint $table) {
$table->dropColumn('github_id');
});
}
Führe die Migration aus:
php artisan migrate
Schritt 7: Frontend-Anpassungen
Füge einen Link oder Button in deinem Frontend hinzu, um die Social-Login-Funktionalität zu nutzen. Zum Beispiel in einer Blade-Template-Datei (resources/views/auth/login.blade.php):
<a href="{{ url('auth/github') }}" class="btn btn-primary">Login with GitHub</a>
Du solltest nun in der Lage sein, dich über GitHub in deiner Laravel-Anwendung zu authentifizieren. Wiederhole diese Schritte für andere Social-Login-Anbieter, indem du die entsprechenden Einstellungen und Routen anpasst.
0 Kommentare
Bitte Loge dich ein um ein Kommentar zu Hinterlassen!
oder Login mit Google