Examples
Basic Login Flow
1. Add service config in config/services.php
'zaimea' => [
'client_id' => env('ZAIMEA_CLIENT_ID'),
'client_secret' => env('ZAIMEA_CLIENT_SECRET'),
'redirect' => env('ZAIMEA_REDIRECT_URI', 'http://zaimea.com/auth/callback'),
'version' => env('ZAIMEA_VERSION', 'v1'),
],
2. Add routes in web.php
Route::get('/auth/redirect', function () {
return Socialite::driver('zaimea')->redirect();
});
Route::get('/auth/callback', function () {
$user = Socialite::driver('zaimea')->user();
dd($user);
});
Login + Store User
Route::get('/auth/callback', function () {
$zaimeaUser = Socialite::driver('zaimea')->user();
$user = User::updateOrCreate([
'email' => $zaimeaUser->email,
], [
'name' => $zaimeaUser->name,
'avatar' => $zaimeaUser->avatar,
]);
Auth::login($user);
return redirect('/dashboard');
});
Getting User Token
$token = $zaimeaUser->token;
Getting Refresh Token
$refresh = $zaimeaUser->refreshToken;
Custom Scopes
Socialite::driver('zaimea')
->scopes(['user'])
->redirect();
Example in Controller
class AuthController
{
public function redirect()
{
return Socialite::driver('zaimea')->redirect();
}
public function callback()
{
$user = Socialite::driver('zaimea')->user();
dd($user->id, $user->email);
}
}
Example in Livewire
public function login()
{
return redirect()->away(Socialite::driver('zaimea')->redirect()->getTargetUrl());
}