1
0
forked from metin2/web
web/app/Http/Controllers/Mall/AuthController.php

40 lines
989 B
PHP

<?php
namespace App\Http\Controllers\Mall;
use App\Http\Controllers\Controller;
use App\Models\Game\Player\Player;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class AuthController extends Controller
{
public function auth(Request $request): RedirectResponse
{
if (!$request->hasValidSignature()) {
abort(401);
}
// Validate the request data
$validated = $request->validate([
'pid' => 'required|exists:player.player,id',
'sid' => 'required|int',
]);
// Fetch the player's account
$player = Player::findOrFail($validated['pid']);
$account = $player->account;
// Authenticate user
Auth::login($account);
$request->session()->regenerate();
// Save user's IP address
$account->ip = $request->ip();
$account->saveOrFail();
return redirect(route('mall'));
}
}