Files
alliance-services/app/Http/Controllers/Auth/LoginController.php
2026-02-22 05:07:09 -06:00

98 lines
2.6 KiB
PHP

<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
//Internal Library
use App\Library\Login\LoginHelper;
class LoginController extends Controller
{
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectto = '/dashboard';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct() {
$this->middleware('guest')->except(['logout',
'handleProviderCallback',
'redirectToProvider']);
}
/**
* Logout function
*
* @return void
*/
public function logout() {
Auth::logout();
return redirect('/');
}
/**
* Redirect to provider's website
*
* @return param
*/
public function redirectToEveonline() {
return Socialite::driver('eveonline')->scopes(['publicData'])->redirect();
}
/**
* Create a new controller instance
*
* @return void
*/
public function handleEveonlineCallback() {
try {
$user = Socialite::driver('eveonline')->user();
$findUser = User::where('character_id', $user->character_id)->first();
if($findUser) {
Auth::login($finduser);
return redirect()->intended('home');
} else {
$newUser = User::updateOrCreate(['character_id' => $user->character_id], [
'character_name' => $user->character_name,
'character_id' => $user->character_id,
'token' => $user->token,
'refresh_token' => $user->refresh_token,
'expiresIn' => $user->expiresIn,
'user_jwt_token' => $user->user,
]);
Auth::login($newUser);
return redirect()->intended('home');
}
} catch(Exception $e) {
dd($e->getMessage());
}
}
/**
* Get token from callback
* Redirect to the dashboard if logging in successfully.
*
* @return redirect()
*/
public function handleProviderCallback(Socialite $social) {
//Get the sso user from the socialite driver
$ssoUser = $social->driver('eveonline')->user();
$scpSession = session()->pull('scopes');
$user = LoginHelper::createOrGetUser($ssoUser);
auth()->login($user, true);
return redirect()->to('/dashboard')->with('success', 'Successfully Logged In.');
}
}