d0febb4855
Ambas vistas ya devolvían JSON en POST y exigen sesión, así que sin cambio de backend: - ChangePasswordForm.tsx: 4 campos (actual/nueva/confirmar/token) con mostrar-ocultar; POST form-urlencoded + CSRF a change_password; mensaje HTML; si el backend responde redirect:true (logout por seguridad), redirige a login. - SecurityTokenForm.tsx: muestra la fecha del token y un botón que solicita uno nuevo; POST -> actualiza la fecha con token_date de la respuesta. - Plantillas: los <form> + scripts jQuery se sustituyen por las islas (#change-password-app / #security-token-app) con data-csrf/data-url. El texto informativo y los enlaces se quedan en Django. Verificado: check OK; ambas vistas siguen redirigiendo a login/index sin sesión. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
47 lines
2.9 KiB
HTML
47 lines
2.9 KiB
HTML
<div class="main-page">
|
|
<div class="middle-content">
|
|
<div class="body-content">
|
|
<div class="title-content"><h1>Token de seguridad</h1></div>
|
|
<div class="box-content">
|
|
<div class="title-box-content"><h2>Información</h2><a class="back-to-account" href="my-account">Regresar a mi cuenta</a><a class="back-to-account-responsive" href="my-account">Regresar</a></div>
|
|
<div class="body-box-content justified">
|
|
<br>
|
|
<p>El <span>Token de seguridad</span> es un código de 6 dígitos (sensible a mayúsculas y minúsculas), que añade seguridad a ciertas opciones en tu panel de cuenta en la página web.</p>
|
|
<p>El mismo será solicitado para acciones importantes de la cuenta.</p>
|
|
<br>
|
|
<p>Para obtenerlo, es necesario solicitarlo haciendo click en el botón debajo.</p>
|
|
<p>Al hacer click, un mensaje será enviado al correo de la cuenta conteniendo el Token de Seguridad.</p>
|
|
<br>
|
|
<p><span class="red-info2">Es importante que conserves el Token de seguridad en un lugar seguro y no lo compartas con otros usuarios.</span></p>
|
|
<br>
|
|
<fieldset>
|
|
<legend>NOTA</legend>
|
|
<div class="separate2">
|
|
<p>Puedes solicitar un nuevo Token de seguridad una vez cada 7 días.</p>
|
|
</div>
|
|
</fieldset>
|
|
<div class="centered">
|
|
<br>
|
|
<br>
|
|
{% load django_vite %}
|
|
<!-- Isla React (Vite): solicitud del token de seguridad.
|
|
POST a la propia vista (JSON), actualiza la fecha. -->
|
|
<div id="security-token-app"
|
|
data-csrf="{{ csrf_token }}"
|
|
data-url="{% url 'security_token' %}"
|
|
data-token-date="{{ token_date }}"></div>
|
|
{% vite_asset 'src/entries/security_token.tsx' %}
|
|
<br>
|
|
<p><a href="recover">He olvidado el Token de seguridad</a></p>
|
|
<br>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<script>
|
|
$("select").change(function(){
|
|
$(this).css("color", $(this).children("option:selected").css("color"));
|
|
});
|
|
</script>
|
|
</div>
|
|
</div>
|
|
</div> |