Untitled
unknown
plain_text
a month ago
1.7 kB
4
Indexable
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use DB;
use Socialite;
use Log;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
class SsoController extends Controller
{
public function redirectToProvider()
{
return Socialite::driver('google')->with(['hd' => 'mercubuana.ac.id'])->redirect();
}
public function handleProviderCallback()
{
try {
$googleUser = Socialite::with('google')->user();
Log::debug('success get user : ' . $googleUser->email);
} catch (\Exception $e) {
Log::debug('invalid user');
Log::debug($e);
return redirect('/login');
}
$account = User::where('email', $googleUser->email)->first();
if ($account === null) {
Log::debug('user not found : ' . $googleUser->email);
return redirect('/login')->with('swal_error', 'Akun email tidak ditemukan. Silakan hubungi administrator.');
}
$login = Auth::loginUsingId($account->id);
if ($login) {
Log::debug('success login account : ' . $account->email);
$user = auth()->user();
$roles = $user->roles;
if ($roles->count() == 1) {
$cekrole = $roles->first();
$idrole = $cekrole->id;
session(['idrole' => $idrole]);
return redirect()->route('home');
} else {
return redirect()->route('dashboard');
}
}
Log::debug('failed login account : ' . $account->email);
return redirect('/login');
}
}Editor is loading...
Leave a Comment