Protect UI with PHP session login and secure APIs. - Add login/logout pages and session auth helper - Serve protected content from index.php - Redirect index.html to index.php to prevent bypass - Require auth for image list/upload APIs Co-authored-by: Cursor <cursoragent@cursor.com>
56 lines
2.4 KiB
PHP
56 lines
2.4 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
require_once __DIR__ . '/auth/auth.php';
|
|
|
|
dreamgirl_session_start();
|
|
|
|
$error = '';
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|
$username = isset($_POST['username']) ? (string)$_POST['username'] : '';
|
|
$password = isset($_POST['password']) ? (string)$_POST['password'] : '';
|
|
|
|
if (dreamgirl_check_credentials($username, $password)) {
|
|
$_SESSION['dreamgirl_user'] = 'admin';
|
|
header('Location: /index.php');
|
|
exit;
|
|
}
|
|
|
|
$error = '아이디 또는 비밀번호가 올바르지 않습니다.';
|
|
}
|
|
?><!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>Login</title>
|
|
<style>
|
|
html, body { height: 100%; margin: 0; font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif; background:#111; color:#eee; }
|
|
.wrap { min-height: 100%; display:flex; align-items:center; justify-content:center; padding:24px; box-sizing:border-box; }
|
|
.card { width: min(420px, 100%); background:#1b1b1b; border:1px solid #2a2a2a; border-radius:12px; padding:18px; }
|
|
h1 { font-size:18px; margin:0 0 12px; }
|
|
label { display:block; font-size:12px; color:#bbb; margin:10px 0 6px; }
|
|
input { width:100%; padding:10px 12px; border-radius:10px; border:1px solid #333; background:#0f0f0f; color:#eee; box-sizing:border-box; }
|
|
button { width:100%; margin-top:14px; padding:10px 12px; border-radius:10px; border:1px solid #3b82f6; background:#2563eb; color:#fff; cursor:pointer; }
|
|
.error { margin-top:10px; color:#ff7b7b; font-size:13px; }
|
|
.hint { margin-top:10px; color:#888; font-size:12px; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="wrap">
|
|
<form class="card" method="post" action="/login.php" autocomplete="off">
|
|
<h1>로그인</h1>
|
|
<label for="username">아이디</label>
|
|
<input id="username" name="username" type="text" required autofocus />
|
|
<label for="password">비밀번호</label>
|
|
<input id="password" name="password" type="password" required />
|
|
<button type="submit">접속</button>
|
|
<?php if ($error): ?>
|
|
<div class="error"><?php echo htmlspecialchars($error, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8'); ?></div>
|
|
<?php endif; ?>
|
|
<div class="hint">인증 성공 시 페이지가 표시됩니다.</div>
|
|
</form>
|
|
</div>
|
|
</body>
|
|
</html>
|
|
|