This commit is contained in:
armiejean 2025-05-09 15:38:05 +08:00
parent 8a24e65251
commit 9b5ee500d0
4 changed files with 19 additions and 56 deletions

View File

@ -3,68 +3,30 @@
namespace App\Http\Controllers\Auth; namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use GuzzleHttp\Client;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use GuzzleHttp\Exception\RequestException;
class LoginController extends Controller class LoginController extends Controller
{ {
public function login(Request $request) public function showLoginForm()
{ {
$username = $request->input('username'); return view('login');
$password = $request->input('password'); }
$client = new Client([ public function showChangePasswordForm()
'base_uri' => env('API_URL', 'http://localhost:8080'), {
'timeout' => 5.0, return view('change-password');
]); }
try { public function showProfile()
// Step 1: Validate username
$usernameResponse = $client->request('POST', '/api/cms/login_username', [
'json' => ['username' => $username]
]);
$usernameData = json_decode($usernameResponse->getBody()->getContents(), true);
if ($usernameData['code'] !== 200 || $usernameData['message'] !== 'Success') {
return response()->json([
'success' => false,
'message' => $usernameData['message'] ?? 'Invalid username'
], 401);
}
// Step 2: Validate password {
$passwordResponse = $client->request('POST', '/api/cms/login_password', [ return view('pages.my-profile');
'json' => ['username' => $username, 'password' => $password] }
]);
$passwordData = json_decode($passwordResponse->getBody()->getContents(), true);
if ($passwordData['code'] !== 200 || $passwordData['message'] !== 'Success') { public function storeUsername(Request $request)
return response()->json([ {
'success' => false, session(['username' => $request->input('username')]);
'message' => $passwordData['message'] ?? 'Invalid password' return response()->json(['success' => true]);
], 401);
}
// Success: Return token to frontend
return response()->json([
'success' => true,
'token' => $passwordData['data']['token'] ?? null,
'message' => 'Login successful! Redirecting...'
]);
} catch (RequestException $e) {
\Log::error('Guzzle error: ' . $e->getMessage());
return response()->json([
'success' => false,
'message' => $e->getMessage() ?: 'Login failed. Please try again.'
], 500);
} catch (\Exception $e) {
\Log::error('Unexpected error: ' . $e->getMessage());
return response()->json([
'success' => false,
'message' => 'An unexpected error occurred. Please try again.'
], 500);
}
} }
} }

View File

@ -53,6 +53,7 @@ return [
*/ */
'url' => env('APP_URL', 'http://localhost'), 'url' => env('APP_URL', 'http://localhost'),
'api_base_url' => env('API_BASE_URL', 'http://192.168.100.6:8081'),
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------

View File

@ -44,7 +44,7 @@
<a href="{{ route('login') }}" class="text-decoration-none text-primary">Back to Login</a> <a href="{{ route('login') }}" class="text-decoration-none text-primary">Back to Login</a>
</div> </div>
<div class="col-6 text-end"> <div class="col-6 text-end">
<button type="submit" class="btn btn-primary w-100" style="background-color: #E74610; border-color: #E74610;">Change Password</button> <button type="submit" class="btn btn-primary w-100" style="background-color: #E74610; border-color: #E74610;">Update</button>
</div> </div>
</div> </div>
</form> </form>

View File

@ -25,8 +25,8 @@ Route::post('/change-password', [AuthController::class, 'changePassword'])->name
// Redirect to my-profile (adjust as needed) // Redirect to my-profile (adjust as needed)
Route::get('/my-profile', function () { Route::get('/my-profile', function () {
return view('my-profile'); // Replace with your actual profile view or controller return view('pages.my-profile'); // Replace with your actual profile view or controller
})->name('my-profile')->middleware('auth'); })->name('my-profile');
// Handle logout // Handle logout
Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); Route::post('/logout', [AuthController::class, 'logout'])->name('logout');