testing
This commit is contained in:
@@ -29,33 +29,25 @@ class EveLoginController extends Controller
|
||||
return Socialite::driver('eveonline')->scopes(['publicData'])->redirect();
|
||||
}
|
||||
|
||||
public function handleProviderCallback(Request $request): RedirectResponse
|
||||
public function handleProviderCallback(Request $request, JwtService $jwtService): RedirectResponse
|
||||
{
|
||||
try {
|
||||
// Stateless can help in some deployments, but keep stateful by default.
|
||||
// If you run into "Invalid state" issues behind proxies, switch to ->stateless()
|
||||
$ssoUser = Socialite::driver('eveonline')->user();
|
||||
Debugbar::warning($ssoUser);
|
||||
|
||||
// Socialite user basics
|
||||
$characterId = (int) $ssoUser->getId();
|
||||
Debugbar::info($characterId);
|
||||
$characterName = $ssoUser->getName() ?: ($ssoUser->getNickname() ?? 'Unknown');
|
||||
Debugbar::info($characterName);
|
||||
|
||||
// Provider-specific extra payload sometimes appears in user array / token response.
|
||||
// We’ll defensively extract what we can.
|
||||
$raw = $ssoUser->user ?? [];
|
||||
|
||||
$characterOwnerHash =
|
||||
$raw['CharacterOwnerHash'] ?? $raw['character_owner_hash'] ?? $raw['owner_hash'] ?? '';
|
||||
Debugbar::info($characterOwnerHash);
|
||||
$raw['CharacterOwnerHash']
|
||||
?? $raw['character_owner_hash']
|
||||
?? $raw['owner_hash']
|
||||
?? '';
|
||||
|
||||
$token = $ssoUser->token;
|
||||
Debugbar::info($token);
|
||||
$refreshToken = $ssoUser->refreshToken ?? null;
|
||||
Debugbar::info($refreshTokeen);
|
||||
$expiresIn = $ssoUser->expiresIn ?? null;
|
||||
Debugbar::info($expiresIn);
|
||||
|
||||
$user = User::updateOrCreate(
|
||||
['character_id' => $characterId],
|
||||
@@ -65,26 +57,22 @@ class EveLoginController extends Controller
|
||||
'token' => $token,
|
||||
'refresh_token' => $refreshToken,
|
||||
'expiresIn' => $expiresIn,
|
||||
// "user" holds jwt - you can set it later when you add JWT issuance.
|
||||
'user_jwt' => null,
|
||||
]
|
||||
);
|
||||
Debugbar::info($user);
|
||||
|
||||
//Issue JWT and store in the "user" column per your spec
|
||||
$jwt = $jwtService->make($user);
|
||||
$user->user_jwt = $jwt;
|
||||
$user->save();
|
||||
// Always regenerate JWT on successful login
|
||||
$jwtService->forceRefresh($user);
|
||||
|
||||
Auth::login($user, true);
|
||||
$request->session()->regenerate();
|
||||
|
||||
return redirect()->route('dashboard');
|
||||
} catch (Throwable $e) {
|
||||
// For now: fail back to login with a generic error.
|
||||
// Later you can add logging/telemetry.
|
||||
Debugbar::addThrowable($e);
|
||||
return redirect()->route('login')->with('error', $e);
|
||||
report($e);
|
||||
|
||||
return redirect()
|
||||
->route('login')
|
||||
->with('error', 'SSO login failed. Please try again.');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user