Files
2026-06-10 08:30:03 +00:00

118 lines
3.7 KiB
PHP
Executable File

<!doctype html>
<html lang="fa">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>بازیابی رمز عبور</title>
<style>
body {
font-family: 'Tahoma', 'IRANYekan', sans-serif;
display: flex;
min-height: 100vh;
align-items: center;
justify-content: center;
background: #f5f7fb;
direction: rtl;
}
.card {
background: #fff;
padding: 28px;
border-radius: 8px;
box-shadow: 0 8px 30px rgba(0,0,0,.06);
width: 380px;
}
input {
width: 100%;
padding: 10px;
margin: 8px 0;
border: 1px solid #ddd;
border-radius: 6px;
}
button {
width: 100%;
padding: 10px;
border: 0;
border-radius: 6px;
background: #2563eb;
color: #fff;
font-weight: 600;
}
.msg {
margin-top: 12px;
padding: 8px;
border-radius: 6px;
word-break: break-word;
}
</style>
</head>
<body>
<div class="card">
<h2 style="margin:0 0 8px">بازیابی رمز عبور</h2>
<p style="margin:0 0 12px;font-size:13px;color:#555">
لطفاً رمز عبور جدید خود را وارد کنید
</p>
<form id="resetForm" autocomplete="off">
<input id="email" name="email" type="email" placeholder="ایمیل (خودکار پر شده)" required />
<input id="password" name="password" type="password" placeholder="رمز عبور جدید" required />
<input id="password_confirmation" name="password_confirmation" type="password" placeholder="تأیید رمز عبور" required />
<input id="token" name="token" type="hidden" value="{{ $token }}" />
<button type="submit">بازنشانی رمز عبور</button>
</form>
<div id="result" class="msg" style="display:none"></div>
</div>
<script>
document.getElementById('resetForm').addEventListener('submit', async function (e) {
e.preventDefault();
const resultEl = document.getElementById('result');
resultEl.style.display = 'block';
resultEl.style.background = '#fff7ed';
resultEl.style.color = '#7c2d12';
resultEl.textContent = 'در حال پردازش...';
const email = document.getElementById('email').value.trim();
const password = document.getElementById('password').value;
const password_confirmation = document.getElementById('password_confirmation').value;
const token = document.getElementById('token').value;
try {
const res = await fetch('/api/auth/reset-password', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ email, token, password, password_confirmation })
});
const json = await res.json();
if (res.ok) {
resultEl.style.background = '#ecfdf5';
resultEl.style.color = '#064e3b';
resultEl.textContent = 'رمز عبور با موفقیت بازنشانی شد. اکنون می‌توانید وارد شوید.';
} else {
resultEl.style.background = '#fff1f2';
resultEl.style.color = '#7f1d1d';
if (json.errors) {
const first = Object.values(json.errors)[0];
resultEl.textContent = Array.isArray(first) ? first[0] : first;
} else {
resultEl.textContent = json.message || JSON.stringify(json);
}
}
} catch (err) {
resultEl.style.background = '#fff1f2';
resultEl.style.color = '#7f1d1d';
resultEl.textContent = 'خطای شبکه.';
console.error(err);
}
});
const qs = new URLSearchParams(window.location.search);
const emailFromQuery = qs.get('email');
if (emailFromQuery) document.getElementById('email').value = emailFromQuery;
</script>
</body>
</html>