- 로그인 페이지에 캐시 금지 헤더(no-store) 추가 → 뒤로가기 시 서버 재요청 - bfcache 복원(pageshow persisted) 시 새로고침 → 로그인 상태면 대시보드로 리다이렉트 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
29 lines
1.7 KiB
PHP
29 lines
1.7 KiB
PHP
<?= $this->extend('auth/_shell') ?>
|
|
|
|
<?= $this->section('heading') ?>로그인<?= $this->endSection() ?>
|
|
|
|
<?= $this->section('content') ?>
|
|
<form action="<?= base_url('login') ?>" method="POST" class="space-y-4">
|
|
<?= csrf_field() ?>
|
|
<div>
|
|
<label class="block text-sm font-bold text-gray-700 mb-1" for="login_id">아이디</label>
|
|
<input class="block w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-[#007bff]/40 focus:border-[#007bff]" id="login_id" name="login_id" type="text" placeholder="아이디" value="<?= esc(old('login_id')) ?>" autocomplete="username" autofocus/>
|
|
</div>
|
|
<div>
|
|
<label class="block text-sm font-bold text-gray-700 mb-1" for="password">비밀번호</label>
|
|
<input class="block w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-[#007bff]/40 focus:border-[#007bff]" id="password" name="password" type="password" placeholder="비밀번호" autocomplete="current-password"/>
|
|
</div>
|
|
<div class="flex gap-2 pt-2">
|
|
<button type="submit" class="bg-btn-search text-white px-4 py-2 rounded-lg text-sm font-semibold shadow hover:brightness-110 transition border border-transparent">로그인</button>
|
|
<a href="<?= base_url('register') ?>" class="bg-white text-gray-700 border border-gray-300 px-4 py-2 rounded-lg text-sm shadow-sm hover:bg-gray-50 transition">회원가입</a>
|
|
</div>
|
|
</form>
|
|
<script>
|
|
// 뒤로가기로 bfcache(뒤로/앞으로 캐시)에서 복원된 경우, 서버에 재요청하여
|
|
// 이미 로그인 상태면 대시보드로 리다이렉트되게 한다.
|
|
window.addEventListener('pageshow', function (e) {
|
|
if (e.persisted) { window.location.reload(); }
|
|
});
|
|
</script>
|
|
<?= $this->endSection() ?>
|