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;
use App\Http\Controllers\Controller;
use GuzzleHttp\Client;
use Illuminate\Http\Request;
use GuzzleHttp\Exception\RequestException;
class LoginController extends Controller
{
public function login(Request $request)
public function showLoginForm()
{
$username = $request->input('username');
$password = $request->input('password');
return view('login');
}
$client = new Client([
'base_uri' => env('API_URL', 'http://localhost:8080'),
'timeout' => 5.0,
]);
public function showChangePasswordForm()
{
return view('change-password');
}
try {
// Step 1: Validate username
$usernameResponse = $client->request('POST', '/api/cms/login_username', [
'json' => ['username' => $username]
]);
$usernameData = json_decode($usernameResponse->getBody()->getContents(), true);
public function showProfile()
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', [
'json' => ['username' => $username, 'password' => $password]
]);
$passwordData = json_decode($passwordResponse->getBody()->getContents(), true);
{
return view('pages.my-profile');
}
if ($passwordData['code'] !== 200 || $passwordData['message'] !== 'Success') {
return response()->json([
'success' => false,
'message' => $passwordData['message'] ?? 'Invalid password'
], 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);
}
public function storeUsername(Request $request)
{
session(['username' => $request->input('username')]);
return response()->json(['success' => true]);
}
}

View File

@ -53,6 +53,7 @@ return [
*/
'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>
</div>
<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>
</form>

View File

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