Implementado Solicitar Token de Seguridad (Web)

This commit is contained in:
adevopg
2024-11-13 14:39:05 +01:00
parent 8e28cda932
commit 797cfaa129
11 changed files with 373 additions and 16 deletions
Binary file not shown.
Binary file not shown.
+24
View File
@@ -0,0 +1,24 @@
# Generated by Django 5.1.2 on 2024-11-13 10:45
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('home', '0004_alter_accountactivation_salt_and_more'),
]
operations = [
migrations.CreateModel(
name='SecurityToken',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('user_id', models.IntegerField()),
('token', models.CharField(max_length=6)),
('created_at', models.DateTimeField(auto_now_add=True)),
('expires_at', models.DateTimeField()),
('ip_address', models.GenericIPAddressField()),
],
),
]
+14
View File
@@ -4,6 +4,8 @@ from django_ckeditor_5.fields import CKEditor5Field
from django.core.exceptions import ValidationError
from django.utils import timezone
import uuid
from django.contrib.auth.models import User
import secrets
class Noticia(models.Model):
titulo = models.CharField(max_length=200)
@@ -114,4 +116,16 @@ class AccountActivation(models.Model):
def is_expired(self):
return timezone.now() > self.created_at + timezone.timedelta(hours=1)
class SecurityToken(models.Model):
user_id = models.IntegerField() # Referencia al ID del usuario en `acore_auth`
token = models.CharField(max_length=6)
created_at = models.DateTimeField(auto_now_add=True)
expires_at = models.DateTimeField()
ip_address = models.GenericIPAddressField()
def __str__(self):
return f"Token for user_id {self.user_id}"
@@ -0,0 +1,60 @@
$(function() {
$('.sec-token-button').on('click', function(e) {
e.preventDefault();
var button = $(this);
var originalText = button.html();
var data = $("#uw-sec-token-form").serialize();
// Cambiar el texto del botón a "Solicitando token"
changeButton(button, 'Solicitando token');
$.ajax({
type: 'POST',
url: '',
data: data,
dataType: 'json',
success: function(response) {
$("#sec-token-response").html(response.message).hide().slideDown();
if (response.success) {
// Actualizar la fecha del token en la página si se ha generado correctamente
if (response.token_date) {
$("#token-date").text(response.token_date);
}
// Cambiar el texto del botón a "Token enviado"
button.html("Token enviado").css("color", "#d79602");
// Restablecer el botón después de 5 segundos
setTimeout(function() {
restoreButton(button, originalText);
$("#sec-token-response").slideUp(function() {
$("#sec-token-response").empty();
});
}, 5000);
} else {
// Restablecer el botón y ocultar el mensaje en caso de error
setTimeout(function() {
$("#sec-token-response").slideUp(function() {
$("#sec-token-response").empty();
restoreButton(button, originalText);
});
}, 5000);
}
},
error: function() {
alert("Algo ha salido mal. Por favor, intenta más tarde.");
window.location.reload();
}
});
});
});
function changeButton(button, text) {
button.prop('disabled', true).html(text);
}
function restoreButton(button, originalText) {
button.prop('disabled', false).html(originalText).css("color", "");
}
+9 -9
View File
@@ -4,7 +4,7 @@
<td align="center" style="padding:0;Margin:0">
<table cellspacing="0" cellpadding="0" align="center" style="border-collapse:collapse;border-spacing:0px;background-color:transparent;width:600px">
<tbody><tr style="border-collapse:collapse">
<td align="left" background="https://ci3.googleusercontent.com/meips/ADKq_Nb7TRH9h2_l1rekf1lKsc5H3P70u9ihoUZEEdHemt7tmVs_0-laBoolKLbqcFXKopQB6mbAu6STs5rmDUPDPSNJr-ZQn1Lg7qTMNpXBfdb-tjYQ9aa9wLiv87TZh1-7Twqjyh_K=s0-d-e1-ft#https://novawow.com/es/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-footer.jpg" style="Margin:0;padding-top:10px;padding-bottom:10px;padding-left:10px;padding-right:10px;background-image:url(https://ci3.googleusercontent.com/meips/ADKq_Nb7TRH9h2_l1rekf1lKsc5H3P70u9ihoUZEEdHemt7tmVs_0-laBoolKLbqcFXKopQB6mbAu6STs5rmDUPDPSNJr-ZQn1Lg7qTMNpXBfdb-tjYQ9aa9wLiv87TZh1-7Twqjyh_K=s0-d-e1-ft#https://novawow.com/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-footer.jpg);background-repeat:no-repeat;background-position:left top">
<td align="left" background="https://ci3.googleusercontent.com/meips/ADKq_Nb7TRH9h2_l1rekf1lKsc5H3P70u9ihoUZEEdHemt7tmVs_0-laBoolKLbqcFXKopQB6mbAu6STs5rmDUPDPSNJr-ZQn1Lg7qTMNpXBfdb-tjYQ9aa9wLiv87TZh1-7Twqjyh_K=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-footer.jpg" style="Margin:0;padding-top:10px;padding-bottom:10px;padding-left:10px;padding-right:10px;background-image:url(https://ci3.googleusercontent.com/meips/ADKq_Nb7TRH9h2_l1rekf1lKsc5H3P70u9ihoUZEEdHemt7tmVs_0-laBoolKLbqcFXKopQB6mbAu6STs5rmDUPDPSNJr-ZQn1Lg7qTMNpXBfdb-tjYQ9aa9wLiv87TZh1-7Twqjyh_K=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-footer.jpg);background-repeat:no-repeat;background-position:left top">
<table cellspacing="0" cellpadding="0" align="left" style="border-collapse:collapse;border-spacing:0px;float:left">
<tbody><tr style="border-collapse:collapse">
@@ -48,14 +48,14 @@
<td align="center" valign="top" style="padding:0;Margin:0;width:600px">
<table cellpadding="0" cellspacing="0" width="100%" role="presentation" style="border-collapse:collapse;border-spacing:0px">
<tbody><tr style="border-collapse:collapse">
<td align="center" style="padding:0;Margin:0;font-size:0px"><a href="https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/2/LcFesQN9Atu1p8XKYNeYrw/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzLw" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#b58a60" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/2/LcFesQN9Atu1p8XKYNeYrw/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzLw&amp;source=gmail&amp;ust=1731498433468000&amp;usg=AOvVaw3nPd4Lj8GE_62E_stVyXcu"><img src="https://ci3.googleusercontent.com/meips/ADKq_NbGrtaFRw1N5A4Ocfm1t4FL2cRnrcqdXNd7NS7wmpPr_a95bSWKHdPsxbJ7EELaQeomHnmCGgOTiKRXinebDgkWcljQLlRqdekcgfDYtBHevrlgbYUerJF7Kd8q96eogRMAUA=s0-d-e1-ft#https://novawow.com/es/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-logo.webp" alt="" style="display:block;border:0;outline:none;text-decoration:none" width="600" class="CToWUd" data-bit="iit"></a></td>
<td align="center" style="padding:0;Margin:0;font-size:0px"><a href="https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/2/LcFesQN9Atu1p8XKYNeYrw/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzLw" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#b58a60" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/2/LcFesQN9Atu1p8XKYNeYrw/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzLw&amp;source=gmail&amp;ust=1731498433468000&amp;usg=AOvVaw3nPd4Lj8GE_62E_stVyXcu"><img src="https://ci3.googleusercontent.com/meips/ADKq_NbGrtaFRw1N5A4Ocfm1t4FL2cRnrcqdXNd7NS7wmpPr_a95bSWKHdPsxbJ7EELaQeomHnmCGgOTiKRXinebDgkWcljQLlRqdekcgfDYtBHevrlgbYUerJF7Kd8q96eogRMAUA=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-logo.webp" alt="" style="display:block;border:0;outline:none;text-decoration:none" width="600" class="CToWUd" data-bit="iit"></a></td>
</tr>
</tbody></table></td>
</tr>
</tbody></table></td>
</tr>
<tr style="border-collapse:collapse">
<td align="left" background="https://ci3.googleusercontent.com/meips/ADKq_NampjHRjJZ3baaTx33h9V0oSoEjb-2o7_fcpmn-1dUnLvv6V5scomVNacYWHrfG6qEkvr2zkGxev2FZM1Il-iso7oWteJv-7PdfwvFssSuZVMCp0UOlCKCnmw8Z8PjUmFIwLw=s0-d-e1-ft#https://novawow.com/es/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg" style="Margin:0;padding-top:40px;padding-bottom:40px;padding-left:40px;padding-right:40px;background-image:url(https://ci3.googleusercontent.com/meips/ADKq_NampjHRjJZ3baaTx33h9V0oSoEjb-2o7_fcpmn-1dUnLvv6V5scomVNacYWHrfG6qEkvr2zkGxev2FZM1Il-iso7oWteJv-7PdfwvFssSuZVMCp0UOlCKCnmw8Z8PjUmFIwLw=s0-d-e1-ft#https://novawow.com/es/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg);background-repeat:repeat;background-position:left top">
<td align="left" background="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg" style="Margin:0;padding-top:40px;padding-bottom:40px;padding-left:40px;padding-right:40px;background-image:url({{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg);background-repeat:repeat;background-position:left top">
<table width="100%" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border-spacing:0px">
<tbody><tr style="border-collapse:collapse">
<td valign="top" align="center" style="padding:0;Margin:0;width:520px">
@@ -108,7 +108,7 @@
<table width="100%" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border-spacing:0px">
<tbody><tr style="border-collapse:collapse">
<td valign="top" align="center" style="padding:0;Margin:0;width:600px">
<table width="100%" cellspacing="0" cellpadding="0" background="https://ci3.googleusercontent.com/meips/ADKq_Nb7TRH9h2_l1rekf1lKsc5H3P70u9ihoUZEEdHemt7tmVs_0-laBoolKLbqcFXKopQB6mbAu6STs5rmDUPDPSNJr-ZQn1Lg7qTMNpXBfdb-tjYQ9aa9wLiv87TZh1-7Twqjyh_K=s0-d-e1-ft#https://novawow.com/es/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-footer.jpg" style="border-collapse:collapse;border-spacing:0px;background-image:url(https://ci3.googleusercontent.com/meips/ADKq_Nb7TRH9h2_l1rekf1lKsc5H3P70u9ihoUZEEdHemt7tmVs_0-laBoolKLbqcFXKopQB6mbAu6STs5rmDUPDPSNJr-ZQn1Lg7qTMNpXBfdb-tjYQ9aa9wLiv87TZh1-7Twqjyh_K=s0-d-e1-ft#https://novawow.com/es/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-footer.jpg);background-repeat:no-repeat;background-position:left top" role="presentation">
<table width="100%" cellspacing="0" cellpadding="0" background="https://ci3.googleusercontent.com/meips/ADKq_Nb7TRH9h2_l1rekf1lKsc5H3P70u9ihoUZEEdHemt7tmVs_0-laBoolKLbqcFXKopQB6mbAu6STs5rmDUPDPSNJr-ZQn1Lg7qTMNpXBfdb-tjYQ9aa9wLiv87TZh1-7Twqjyh_K=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-footer.jpg" style="border-collapse:collapse;border-spacing:0px;background-image:url(https://ci3.googleusercontent.com/meips/ADKq_Nb7TRH9h2_l1rekf1lKsc5H3P70u9ihoUZEEdHemt7tmVs_0-laBoolKLbqcFXKopQB6mbAu6STs5rmDUPDPSNJr-ZQn1Lg7qTMNpXBfdb-tjYQ9aa9wLiv87TZh1-7Twqjyh_K=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-footer.jpg);background-repeat:no-repeat;background-position:left top" role="presentation">
<tbody><tr style="border-collapse:collapse">
<td align="center" style="padding:0;Margin:0;padding-top:10px"><p style="Margin:0;font-size:14px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';line-height:21px;color:#ffffff">SÍGUENOS EN</p></td>
</tr>
@@ -116,10 +116,10 @@
<td align="center" style="padding:0;Margin:0;padding-top:15px;padding-bottom:15px;font-size:0">
<table cellspacing="0" cellpadding="0" role="presentation" style="border-collapse:collapse;border-spacing:0px">
<tbody><tr style="border-collapse:collapse">
<td valign="top" align="center" style="padding:0;Margin:0;padding-right:20px"><a href="https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/5/f6s0ZwRQuTE-C-jasxOasA/aHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL1VsdGltb1dvVy8" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/5/f6s0ZwRQuTE-C-jasxOasA/aHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL1VsdGltb1dvVy8&amp;source=gmail&amp;ust=1731498433469000&amp;usg=AOvVaw2ZYRFnIqpWDQyggiWBGXiO"><img title="Facebook" src="https://ci3.googleusercontent.com/meips/ADKq_NZilnlcbCQgXaGDD49GJm1QFsSdTisHSRzUuQh4d4QKoFs3Ys9JhJPXVNdR_KpKC5vmyUcWWJUIsqn1GXLM6BGlwAHTecUwfe2DsIMiYGRh6vzdCmKKVc0G0EeWORl4DkybPNIUgPikBA=s0-d-e1-ft#https://novawow.com/es/nw-themes/nw-ryu/nw-images/nw-mails/facebook-logo-gray.png" alt="Fb" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
<td valign="top" align="center" style="padding:0;Margin:0;padding-right:20px"><a href="https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/6/UGtcJN5ISi7MAnPkbxjBcQ/aHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS9VbHRpbW9Xb1cv" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/6/UGtcJN5ISi7MAnPkbxjBcQ/aHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS9VbHRpbW9Xb1cv&amp;source=gmail&amp;ust=1731498433469000&amp;usg=AOvVaw3a1MAk7G2C1gKYxEBcZ596"><img title="Instagram" src="https://ci3.googleusercontent.com/meips/ADKq_NaAaG1uiPhc-J3UJaRHNGlIjQEP6NvhOLKG9_MBwf-udq3Ao7oCHffCGaQTQRl4AE6vTB11LigeSFs35bZyvLfIeaMY1hq_NtkoC4Zdo-foNc8Tf8PTqEKcvTglkSt8CmOLt4Ewrzuz8jk=s0-d-e1-ft#https://novawow.com/es/nw-themes/nw-ryu/nw-images/nw-mails/instagram-logo-gray.png" alt="Ig" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
<td valign="top" align="center" style="padding:0;Margin:0;padding-right:20px"><a href="https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/7/dNuKqBpwdnPzZqmaJqBMLg/aHR0cHM6Ly90d2l0dGVyLmNvbS9VbHRpbW9Xb1c" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/7/dNuKqBpwdnPzZqmaJqBMLg/aHR0cHM6Ly90d2l0dGVyLmNvbS9VbHRpbW9Xb1c&amp;source=gmail&amp;ust=1731498433469000&amp;usg=AOvVaw0mNhdOEFArJFuU_zdxLrVr"><img title="Twitter" src="https://ci3.googleusercontent.com/meips/ADKq_Na3G-i__xB8LyVCx9Wxs_nsW07gi3Uo3-27M3uXViT9DnhI0oykXfumzibiio1R0jLpHVKx3W1Yao5mcAODWc-6LS0nx9nuKJ2_L7qY6eoUhfdF-VxxWeEQR1LBwnsjowmhy83_izS-=s0-d-e1-ft#https://novawow.com/es/nw-themes/nw-ryu/nw-images/nw-mails/twitter-logo-gray.png" alt="Tw" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
<td valign="top" align="center" style="padding:0;Margin:0"><a href="https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/8/sGLIpTKAAbVLc-tQyYqAVQ/aHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ2FITDhCWmNobzhBa2VNOXdja1FieWc" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/8/sGLIpTKAAbVLc-tQyYqAVQ/aHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ2FITDhCWmNobzhBa2VNOXdja1FieWc&amp;source=gmail&amp;ust=1731498433469000&amp;usg=AOvVaw09YlWuRMpxVueGWvjg9E08"><img title="Youtube" src="https://ci3.googleusercontent.com/meips/ADKq_NYxr7vXp62rdfUJTmC76VPL7ErYx7DTXmdpM3gt6ghQ1Ag6E9aLTkja5Jgff_A5020Lrm7K20cjG2RjHCtGTSd2DWxmCD4XvB5VEDXXyL_ivnQBG-hXm42mKYqlBHYFHKwEr9p44lIt=s0-d-e1-ft#https://novawow.com/es/nw-themes/nw-ryu/nw-images/nw-mails/youtube-logo-gray.png" alt="Yt" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
<td valign="top" align="center" style="padding:0;Margin:0;padding-right:20px"><a href="https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/5/f6s0ZwRQuTE-C-jasxOasA/aHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL1VsdGltb1dvVy8" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/5/f6s0ZwRQuTE-C-jasxOasA/aHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL1VsdGltb1dvVy8&amp;source=gmail&amp;ust=1731498433469000&amp;usg=AOvVaw2ZYRFnIqpWDQyggiWBGXiO"><img title="Facebook" src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/facebook-logo-gray.png#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/facebook-logo-gray.png" alt="Fb" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
<td valign="top" align="center" style="padding:0;Margin:0;padding-right:20px"><a href="https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/6/UGtcJN5ISi7MAnPkbxjBcQ/aHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS9VbHRpbW9Xb1cv" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/6/UGtcJN5ISi7MAnPkbxjBcQ/aHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS9VbHRpbW9Xb1cv&amp;source=gmail&amp;ust=1731498433469000&amp;usg=AOvVaw3a1MAk7G2C1gKYxEBcZ596"><img title="Instagram" src="https://ci3.googleusercontent.com/meips/ADKq_NaAaG1uiPhc-J3UJaRHNGlIjQEP6NvhOLKG9_MBwf-udq3Ao7oCHffCGaQTQRl4AE6vTB11LigeSFs35bZyvLfIeaMY1hq_NtkoC4Zdo-foNc8Tf8PTqEKcvTglkSt8CmOLt4Ewrzuz8jk=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/instagram-logo-gray.png" alt="Ig" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
<td valign="top" align="center" style="padding:0;Margin:0;padding-right:20px"><a href="https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/7/dNuKqBpwdnPzZqmaJqBMLg/aHR0cHM6Ly90d2l0dGVyLmNvbS9VbHRpbW9Xb1c" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/7/dNuKqBpwdnPzZqmaJqBMLg/aHR0cHM6Ly90d2l0dGVyLmNvbS9VbHRpbW9Xb1c&amp;source=gmail&amp;ust=1731498433469000&amp;usg=AOvVaw0mNhdOEFArJFuU_zdxLrVr"><img title="Twitter" src="https://ci3.googleusercontent.com/meips/ADKq_Na3G-i__xB8LyVCx9Wxs_nsW07gi3Uo3-27M3uXViT9DnhI0oykXfumzibiio1R0jLpHVKx3W1Yao5mcAODWc-6LS0nx9nuKJ2_L7qY6eoUhfdF-VxxWeEQR1LBwnsjowmhy83_izS-=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/twitter-logo-gray.png" alt="Tw" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
<td valign="top" align="center" style="padding:0;Margin:0"><a href="https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/8/sGLIpTKAAbVLc-tQyYqAVQ/aHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ2FITDhCWmNobzhBa2VNOXdja1FieWc" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/8/sGLIpTKAAbVLc-tQyYqAVQ/aHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ2FITDhCWmNobzhBa2VNOXdja1FieWc&amp;source=gmail&amp;ust=1731498433469000&amp;usg=AOvVaw09YlWuRMpxVueGWvjg9E08"><img title="Youtube" src="https://ci3.googleusercontent.com/meips/ADKq_NYxr7vXp62rdfUJTmC76VPL7ErYx7DTXmdpM3gt6ghQ1Ag6E9aLTkja5Jgff_A5020Lrm7K20cjG2RjHCtGTSd2DWxmCD4XvB5VEDXXyL_ivnQBG-hXm42mKYqlBHYFHKwEr9p44lIt=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/youtube-logo-gray.png" alt="Yt" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
</tr>
</tbody></table></td>
</tr>
@@ -132,7 +132,7 @@
<table width="100%" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border-spacing:0px">
<tbody><tr style="border-collapse:collapse">
<td valign="top" align="center" style="padding:0;Margin:0;width:600px">
<table width="100%" cellspacing="0" cellpadding="0" background="https://ci3.googleusercontent.com/meips/ADKq_NampjHRjJZ3baaTx33h9V0oSoEjb-2o7_fcpmn-1dUnLvv6V5scomVNacYWHrfG6qEkvr2zkGxev2FZM1Il-iso7oWteJv-7PdfwvFssSuZVMCp0UOlCKCnmw8Z8PjUmFIwLw=s0-d-e1-ft#https://novawow.com/es/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg" style="border-collapse:collapse;border-spacing:0px;background-image:url(https://ci3.googleusercontent.com/meips/ADKq_NampjHRjJZ3baaTx33h9V0oSoEjb-2o7_fcpmn-1dUnLvv6V5scomVNacYWHrfG6qEkvr2zkGxev2FZM1Il-iso7oWteJv-7PdfwvFssSuZVMCp0UOlCKCnmw8Z8PjUmFIwLw=s0-d-e1-ft#https://novawow.com/es/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg);background-repeat:no-repeat;background-position:left top" role="presentation">
<table width="100%" cellspacing="0" cellpadding="0" background="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg" style="border-collapse:collapse;border-spacing:0px;background-image:url({{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg);background-repeat:no-repeat;background-position:left top" role="presentation">
<tbody><tr style="border-collapse:collapse">
<td align="center" style="padding:0;Margin:0;padding-top:10px;padding-bottom:15px"><p style="Margin:0;font-size:14px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';line-height:21px;color:#5c4c44"><a href="https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/9/ZlWuOVIbPYaleSpsSuw3Ew/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3Rlcm1zLWFuZC1jb25kaXRpb25z" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:none;color:#2471a9" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/9/ZlWuOVIbPYaleSpsSuw3Ew/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3Rlcm1zLWFuZC1jb25kaXRpb25z&amp;source=gmail&amp;ust=1731498433469000&amp;usg=AOvVaw2dsWhHN3CcN0kKQnyUm91o">Términos y Condiciones</a>&nbsp;| <a href="https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/10/5L1HSlG1_MryxhAwLok8Hw/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3JlZnVuZC1wb2xpY3k" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:none;color:#2471a9" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/10/5L1HSlG1_MryxhAwLok8Hw/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3JlZnVuZC1wb2xpY3k&amp;source=gmail&amp;ust=1731498433469000&amp;usg=AOvVaw0pVCr9IINwuwAKBTAXvMid">Política de Reembolso</a>&nbsp;| <a href="https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/11/bmmVW3qrlVYp2WbjghJdCQ/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3ByaXZhY3ktcG9saWN5" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:none;color:#2471a9" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AU4AAFT1m8YAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnKdnNbMFetHGyQ9ursJAD3kGn5wAhkNU/11/bmmVW3qrlVYp2WbjghJdCQ/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3ByaXZhY3ktcG9saWN5&amp;source=gmail&amp;ust=1731498433469000&amp;usg=AOvVaw3DoZqMDsaHsX7G4FIF7Fqy">Política de Privacidad</a><br><span class="il">{{ NOMBRE_SERVIDOR }}</span> © {{ ANIO_ACTUAL }}</p></td>
</tr>
+163
View File
@@ -0,0 +1,163 @@
<div class=""><div class="aHl"></div><div id=":ne" tabindex="-1"></div><div id=":n4" class="ii gt" jslog="20277; u014N:xr6bB; 1:WyIjdGhyZWFkLWY6MTgxNTYwMTcyMTAzMjE0ODI0NyJd; 4:WyIjbXNnLWY6MTgxNTYwMTcyMTAzMjE0ODI0NyIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDBd"><div id=":n3" class="a3s aiL "><u></u>
<div style="width:100%;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';padding:0;Margin:0">
<div style="background-color:#0f0f0f">
<table width="100%" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border-spacing:0px;padding:0;Margin:0;width:100%;height:100%;background-repeat:repeat;background-position:center top">
<tbody><tr style="border-collapse:collapse">
<td valign="top" style="padding:0;Margin:0">
<table cellpadding="0" cellspacing="0" align="center" style="border-collapse:collapse;border-spacing:0px;table-layout:fixed!important;width:100%;background-color:transparent;background-repeat:repeat;background-position:center top">
<tbody><tr style="border-collapse:collapse">
<td align="center" style="padding:0;Margin:0">
<table cellspacing="0" cellpadding="0" align="center" style="border-collapse:collapse;border-spacing:0px;background-color:transparent;width:600px">
<tbody><tr style="border-collapse:collapse">
<td align="left" background="https://ci3.googleusercontent.com/meips/ADKq_Nb7TRH9h2_l1rekf1lKsc5H3P70u9ihoUZEEdHemt7tmVs_0-laBoolKLbqcFXKopQB6mbAu6STs5rmDUPDPSNJr-ZQn1Lg7qTMNpXBfdb-tjYQ9aa9wLiv87TZh1-7Twqjyh_K=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-footer.jpg" style="Margin:0;padding-top:10px;padding-bottom:10px;padding-left:10px;padding-right:10px;background-image:url(https://ci3.googleusercontent.com/meips/ADKq_Nb7TRH9h2_l1rekf1lKsc5H3P70u9ihoUZEEdHemt7tmVs_0-laBoolKLbqcFXKopQB6mbAu6STs5rmDUPDPSNJr-ZQn1Lg7qTMNpXBfdb-tjYQ9aa9wLiv87TZh1-7Twqjyh_K=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-footer.jpg);background-repeat:no-repeat;background-position:left top">
<table cellspacing="0" cellpadding="0" align="left" style="border-collapse:collapse;border-spacing:0px;float:left">
<tbody><tr style="border-collapse:collapse">
<td align="left" style="padding:0;Margin:0;width:280px">
<table width="100%" cellspacing="0" cellpadding="0" role="presentation" style="border-collapse:collapse;border-spacing:0px">
<tbody><tr style="border-collapse:collapse">
<td align="left" id="m_-6152822836979538909title-mail-header" style="padding:0;Margin:0"><p style="Margin:0;font-size:11px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';line-height:17px;color:#b1997f">TOKEN DE SEGURIDAD</p></td>
</tr>
</tbody></table></td>
</tr>
</tbody></table>
<table cellspacing="0" cellpadding="0" align="right" style="border-collapse:collapse;border-spacing:0px;float:right">
<tbody><tr style="border-collapse:collapse">
<td align="left" style="padding:0;Margin:0">
<table width="100%" cellspacing="0" cellpadding="0" role="presentation" style="border-collapse:collapse;border-spacing:0px">
<tbody><tr style="border-collapse:collapse">
<td style="padding:0;Margin:0">
<table width="100%" cellspacing="0" cellpadding="0" role="presentation" style="border-collapse:collapse;border-spacing:0px">
<tbody><tr id="m_-6152822836979538909header-mail-links" style="border-collapse:collapse">
<td style="Margin:0;padding-left:5px;padding-right:5px;padding-top:3px;padding-bottom:0px;border:0" width="50%" bgcolor="transparent" align="center"><a style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:none;display:block;color:#2471a9" href="https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/1/MGBEqfpUgZk3chR5ONozHg/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzLw" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/1/MGBEqfpUgZk3chR5ONozHg/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzLw&amp;source=gmail&amp;ust=1731586528916000&amp;usg=AOvVaw3T9Ry0HidzS4whXEEmkUj2">Ir al sitio</a></td>
</tr>
</tbody></table></td>
</tr>
</tbody></table></td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table></td>
</tr>
</tbody></table>
<table cellspacing="0" cellpadding="0" align="center" style="border-collapse:collapse;border-spacing:0px;table-layout:fixed!important;width:100%">
<tbody><tr style="border-collapse:collapse">
<td align="center" style="padding:0;Margin:0">
<table style="border-collapse:collapse;border-spacing:0px;background-color:transparent;width:600px" cellspacing="0" cellpadding="0" align="center">
<tbody><tr style="border-collapse:collapse">
<td align="left" style="padding:0;Margin:0">
<table cellpadding="0" cellspacing="0" width="100%" style="border-collapse:collapse;border-spacing:0px">
<tbody><tr style="border-collapse:collapse">
<td align="center" valign="top" style="padding:0;Margin:0;width:600px">
<table cellpadding="0" cellspacing="0" width="100%" role="presentation" style="border-collapse:collapse;border-spacing:0px">
<tbody><tr style="border-collapse:collapse">
<td align="center" style="padding:0;Margin:0;font-size:0px"><a href="https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/2/Oc3Ms2hgpLMpVtp0iMlXJg/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzLw" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#b58a60" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/2/Oc3Ms2hgpLMpVtp0iMlXJg/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzLw&amp;source=gmail&amp;ust=1731586528916000&amp;usg=AOvVaw39mBNeCVjuJP_TJECAjLxp"><img src="https://ci3.googleusercontent.com/meips/ADKq_NbGrtaFRw1N5A4Ocfm1t4FL2cRnrcqdXNd7NS7wmpPr_a95bSWKHdPsxbJ7EELaQeomHnmCGgOTiKRXinebDgkWcljQLlRqdekcgfDYtBHevrlgbYUerJF7Kd8q96eogRMAUA=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-logo.png" alt="" style="display:block;border:0;outline:none;text-decoration:none" width="600" class="CToWUd" data-bit="iit"></a></td>
</tr>
</tbody></table></td>
</tr>
</tbody></table></td>
</tr>
<tr style="border-collapse:collapse">
<td align="left" background="https://ci3.googleusercontent.com/meips/ADKq_NampjHRjJZ3baaTx33h9V0oSoEjb-2o7_fcpmn-1dUnLvv6V5scomVNacYWHrfG6qEkvr2zkGxev2FZM1Il-iso7oWteJv-7PdfwvFssSuZVMCp0UOlCKCnmw8Z8PjUmFIwLw=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg" style="Margin:0;padding-top:40px;padding-bottom:40px;padding-left:40px;padding-right:40px;background-image:url(https://ci3.googleusercontent.com/meips/ADKq_NampjHRjJZ3baaTx33h9V0oSoEjb-2o7_fcpmn-1dUnLvv6V5scomVNacYWHrfG6qEkvr2zkGxev2FZM1Il-iso7oWteJv-7PdfwvFssSuZVMCp0UOlCKCnmw8Z8PjUmFIwLw=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg);background-repeat:repeat;background-position:left top">
<table width="100%" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border-spacing:0px">
<tbody><tr style="border-collapse:collapse">
<td valign="top" align="center" style="padding:0;Margin:0;width:520px">
<table width="100%" cellspacing="0" cellpadding="0" role="presentation" style="border-collapse:collapse;border-spacing:0px">
<tbody><tr style="border-collapse:collapse">
<td align="left" style="padding:0;Margin:0"><h1 style="Margin:0;line-height:45px;font-family:georgia,times,'times new roman',serif;font-size:30px;font-style:normal;font-weight:normal;color:#b17c02">Token de Seguridad</h1></td>
</tr>
<tr style="border-collapse:collapse">
<td align="left" style="padding:0;Margin:0"><p style="Margin:0;font-size:14px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';line-height:21px;color:#ebdec2">Alguien desde la IP {{ ip_address }} ha solicitado el Token de seguridad para la cuenta {{ username }}.<br>Si no has sido tú, te recomendamos cambiar la contraseña de tu cuenta.<br><br>Tus datos de cuenta son:</p></td>
</tr>
<tr style="border-collapse:collapse">
<td align="left" style="padding:0;Margin:0"><p style="Margin:0;font-size:14px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';line-height:21px;color:#b1997f">Cuenta: {{ username }}<br>Token de Seguridad: {{ token }}<br><br></p></td>
</tr>
<tr style="border-collapse:collapse">
<td align="left" style="padding:0;Margin:0"><p style="Margin:0;font-size:14px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';line-height:21px;color:#ebdec2">Recuerda que este Token es sensible a mayúsculas y minúsculas.<br>Al usarlo, escríbelo exactamente de la misma forma que aparece aquí.</p></td>
</tr>
<tr style="border-collapse:collapse">
<td align="center" style="padding:20px;Margin:0;font-size:0">
<table border="0" width="100%" height="100%" cellpadding="0" cellspacing="0" role="presentation" style="border-collapse:collapse;border-spacing:0px">
<tbody><tr style="border-collapse:collapse">
<td style="padding:0;Margin:0;border-bottom:2px solid #5c4c44;background:none;height:1px;width:100%;margin:0px"></td>
</tr>
</tbody></table></td>
</tr>
<tr style="border-collapse:collapse">
<td align="left" style="padding:0;Margin:0;padding-top:5px;padding-bottom:20px"><p style="Margin:0;font-size:14px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';line-height:21px;color:#ebdec2">¡No compartas el Token de Seguridad con nadie!<br><br><br>Atentamente, el Equipo de {{ NOMBRE_SERVIDOR }}.</p></td>
</tr>
</tbody></table></td>
</tr>
</tbody></table></td>
</tr>
</tbody></table></td>
</tr>
</tbody></table>
<table cellpadding="0" cellspacing="0" align="center" style="border-collapse:collapse;border-spacing:0px;table-layout:fixed!important;width:100%;background-color:transparent;background-repeat:repeat;background-position:center top">
<tbody><tr style="border-collapse:collapse">
<td align="center" style="padding:0;Margin:0">
<table cellspacing="0" cellpadding="0" align="center" style="background-color:transparent;border-collapse:collapse;border-spacing:0px;width:600px">
<tbody><tr style="border-collapse:collapse">
<td align="left" style="padding:0;Margin:0">
<table width="100%" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border-spacing:0px">
<tbody><tr style="border-collapse:collapse">
<td valign="top" align="center" style="padding:0;Margin:0;width:600px">
<table width="100%" cellspacing="0" cellpadding="0" background="https://ci3.googleusercontent.com/meips/ADKq_Nb7TRH9h2_l1rekf1lKsc5H3P70u9ihoUZEEdHemt7tmVs_0-laBoolKLbqcFXKopQB6mbAu6STs5rmDUPDPSNJr-ZQn1Lg7qTMNpXBfdb-tjYQ9aa9wLiv87TZh1-7Twqjyh_K=s0-d-e1-ft#https://novawow.com/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-footer.jpg" style="border-collapse:collapse;border-spacing:0px;background-image:url(https://ci3.googleusercontent.com/meips/ADKq_Nb7TRH9h2_l1rekf1lKsc5H3P70u9ihoUZEEdHemt7tmVs_0-laBoolKLbqcFXKopQB6mbAu6STs5rmDUPDPSNJr-ZQn1Lg7qTMNpXBfdb-tjYQ9aa9wLiv87TZh1-7Twqjyh_K=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-footer.jpg);background-repeat:no-repeat;background-position:left top" role="presentation">
<tbody><tr style="border-collapse:collapse">
<td align="center" style="padding:0;Margin:0;padding-top:10px"><p style="Margin:0;font-size:14px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';line-height:21px;color:#ffffff">SÍGUENOS EN</p></td>
</tr>
<tr style="border-collapse:collapse">
<td align="center" style="padding:0;Margin:0;padding-top:15px;padding-bottom:15px;font-size:0">
<table cellspacing="0" cellpadding="0" role="presentation" style="border-collapse:collapse;border-spacing:0px">
<tbody><tr style="border-collapse:collapse">
<td valign="top" align="center" style="padding:0;Margin:0;padding-right:20px"><a href="https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/3/eMeZ3SH3ZpE3H1-iw92R8w/aHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL1VsdGltb1dvVy8" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/3/eMeZ3SH3ZpE3H1-iw92R8w/aHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL1VsdGltb1dvVy8&amp;source=gmail&amp;ust=1731586528916000&amp;usg=AOvVaw0ltaEwsMuiGRL2DP8YsxZS"><img title="Facebook" src="https://ci3.googleusercontent.com/meips/ADKq_NZilnlcbCQgXaGDD49GJm1QFsSdTisHSRzUuQh4d4QKoFs3Ys9JhJPXVNdR_KpKC5vmyUcWWJUIsqn1GXLM6BGlwAHTecUwfe2DsIMiYGRh6vzdCmKKVc0G0EeWORl4DkybPNIUgPikBA=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/facebook-logo-gray.png" alt="Fb" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
<td valign="top" align="center" style="padding:0;Margin:0;padding-right:20px"><a href="https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/4/fymnSH5a4-LsG8RH61xSWQ/aHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS9VbHRpbW9Xb1cv" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/4/fymnSH5a4-LsG8RH61xSWQ/aHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS9VbHRpbW9Xb1cv&amp;source=gmail&amp;ust=1731586528916000&amp;usg=AOvVaw2-krZEF84e2lo8xjP85ceZ"><img title="Instagram" src="https://ci3.googleusercontent.com/meips/ADKq_NaAaG1uiPhc-J3UJaRHNGlIjQEP6NvhOLKG9_MBwf-udq3Ao7oCHffCGaQTQRl4AE6vTB11LigeSFs35bZyvLfIeaMY1hq_NtkoC4Zdo-foNc8Tf8PTqEKcvTglkSt8CmOLt4Ewrzuz8jk=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/instagram-logo-gray.png" alt="Ig" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
<td valign="top" align="center" style="padding:0;Margin:0;padding-right:20px"><a href="https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/5/NNX_cghtGsHreE-aPj9g1A/aHR0cHM6Ly90d2l0dGVyLmNvbS9VbHRpbW9Xb1c" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/5/NNX_cghtGsHreE-aPj9g1A/aHR0cHM6Ly90d2l0dGVyLmNvbS9VbHRpbW9Xb1c&amp;source=gmail&amp;ust=1731586528916000&amp;usg=AOvVaw34jaboIURRtHrkCUUxMDCo"><img title="Twitter" src="https://ci3.googleusercontent.com/meips/ADKq_Na3G-i__xB8LyVCx9Wxs_nsW07gi3Uo3-27M3uXViT9DnhI0oykXfumzibiio1R0jLpHVKx3W1Yao5mcAODWc-6LS0nx9nuKJ2_L7qY6eoUhfdF-VxxWeEQR1LBwnsjowmhy83_izS-=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/twitter-logo-gray.png" alt="Tw" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
<td valign="top" align="center" style="padding:0;Margin:0"><a href="https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/6/uxFAHEwPFZyyoIfyKN2i0Q/aHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ2FITDhCWmNobzhBa2VNOXdja1FieWc" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:underline;color:#333333" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/6/uxFAHEwPFZyyoIfyKN2i0Q/aHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQ2FITDhCWmNobzhBa2VNOXdja1FieWc&amp;source=gmail&amp;ust=1731586528916000&amp;usg=AOvVaw35gzM0dgKG8QFWbaErRb5S"><img title="Youtube" src="https://ci3.googleusercontent.com/meips/ADKq_NYxr7vXp62rdfUJTmC76VPL7ErYx7DTXmdpM3gt6ghQ1Ag6E9aLTkja5Jgff_A5020Lrm7K20cjG2RjHCtGTSd2DWxmCD4XvB5VEDXXyL_ivnQBG-hXm42mKYqlBHYFHKwEr9p44lIt=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/youtube-logo-gray.png" alt="Yt" width="32" height="32" style="display:block;border:0;outline:none;text-decoration:none" class="CToWUd" data-bit="iit"></a></td>
</tr>
</tbody></table></td>
</tr>
</tbody></table></td>
</tr>
</tbody></table></td>
</tr>
<tr style="border-collapse:collapse">
<td style="padding:0;Margin:0" align="left">
<table width="100%" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border-spacing:0px">
<tbody><tr style="border-collapse:collapse">
<td valign="top" align="center" style="padding:0;Margin:0;width:600px">
<table width="100%" cellspacing="0" cellpadding="0" background="https://ci3.googleusercontent.com/meips/ADKq_NampjHRjJZ3baaTx33h9V0oSoEjb-2o7_fcpmn-1dUnLvv6V5scomVNacYWHrfG6qEkvr2zkGxev2FZM1Il-iso7oWteJv-7PdfwvFssSuZVMCp0UOlCKCnmw8Z8PjUmFIwLw=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg" style="border-collapse:collapse;border-spacing:0px;background-image:url(https://ci3.googleusercontent.com/meips/ADKq_NampjHRjJZ3baaTx33h9V0oSoEjb-2o7_fcpmn-1dUnLvv6V5scomVNacYWHrfG6qEkvr2zkGxev2FZM1Il-iso7oWteJv-7PdfwvFssSuZVMCp0UOlCKCnmw8Z8PjUmFIwLw=s0-d-e1-ft#{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-images/nw-mails/nw-mail-body.jpg);background-repeat:no-repeat;background-position:left top" role="presentation">
<tbody><tr style="border-collapse:collapse">
<td align="center" style="padding:0;Margin:0;padding-top:10px;padding-bottom:15px"><p style="Margin:0;font-size:14px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';line-height:21px;color:#5c4c44"><a href="https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/7/gW554gvv1wvMdFBMyZJEBQ/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3Rlcm1zLWFuZC1jb25kaXRpb25z" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:none;color:#2471a9" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/7/gW554gvv1wvMdFBMyZJEBQ/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3Rlcm1zLWFuZC1jb25kaXRpb25z&amp;source=gmail&amp;ust=1731586528916000&amp;usg=AOvVaw0mS9wOaJS7g7XyJCz5ZHwf">Términos y Condiciones</a>&nbsp;| <a href="https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/8/pAW0ZbVFf6fPl9Ch2pJi6g/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3JlZnVuZC1wb2xpY3k" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:none;color:#2471a9" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/8/pAW0ZbVFf6fPl9Ch2pJi6g/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3JlZnVuZC1wb2xpY3k&amp;source=gmail&amp;ust=1731586528916000&amp;usg=AOvVaw3akrXM3foI7oi-tQNc2Ja4">Política de Reembolso</a>&nbsp;| <a href="https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/9/DEEnndjoRg4gzDjv_4Xn_g/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3ByaXZhY3ktcG9saWN5" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';font-size:14px;text-decoration:none;color:#2471a9" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/9/DEEnndjoRg4gzDjv_4Xn_g/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzL3ByaXZhY3ktcG9saWN5&amp;source=gmail&amp;ust=1731586528916000&amp;usg=AOvVaw3ANOEzlHeVGFQc0SCUfHg4">Política de Privacidad</a><br>{{ NOMBRE_SERVIDOR }} © {{ ANIO_ACTUAL }}</p></td>
</tr>
</tbody></table></td>
</tr>
</tbody></table></td>
</tr>
</tbody></table></td>
</tr>
</tbody></table></td>
</tr>
</tbody></table>
</div>
<br><a style="font-family:Arial,sans-serif" href="https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/0/fwi1q3h4v1W2Ieyp00-ZKQ/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzLw?b=1" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/0/fwi1q3h4v1W2Ieyp00-ZKQ/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzLw?b%3D1&amp;source=gmail&amp;ust=1731586528916000&amp;usg=AOvVaw27bfsinVJjoIjvw7SUEke7">&ZeroWidthSpace;</a><div style="display:none;height:0px;width:0px;overflow:hidden"><a href="https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/0/fwi1q3h4v1W2Ieyp00-ZKQ/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzLw?b=2" rel="noreferrer" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/0/fwi1q3h4v1W2Ieyp00-ZKQ/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzLw?b%3D2&amp;source=gmail&amp;ust=1731586528916000&amp;usg=AOvVaw38Ql-LUoglc9YYPmg_RQr3">Click on me</a></div><a href="https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/0/fwi1q3h4v1W2Ieyp00-ZKQ/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzLw?b=3" target="_blank" data-saferedirecturl="https://www.google.com/url?q=https://079xk.mjt.lu/lnk/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/0/fwi1q3h4v1W2Ieyp00-ZKQ/aHR0cHM6Ly91bHRpbW93b3cuY29tL2VzLw?b%3D3&amp;source=gmail&amp;ust=1731586528916000&amp;usg=AOvVaw0jgJOOmTH0DNToOBL2REW-">
<img src="https://ci3.googleusercontent.com/meips/ADKq_NaOOYGTBCERULgUShUPJS2ZRmLb4VQ1WG0gcfJa3pJm89cJpmSx4agN4VT3V1CS51FQowD-UQ1rjl1cQNS73dUGLsTRr65QGhdsbnmEWsWk8s_Xad7bsxXu4GzKY9hj5sdLtwKynZzhHOQatM4_-CDaReCp7mzC-b8fyBfmegheCy7aTuIrBeyGmtRh=s0-d-e1-ft#https://079xk.mjt.lu/oo/AWIAAFV0XXYAAAAAAAAAAlmz1CcAAYCtSIUAAAAAACPUeABnNHt5OLp-JQdyTQe689o67voJTAAhkNU/a398f5af/e.gif" height="1" width="1" alt="" border="0" style="height:1px;width:1px;border:0" class="CToWUd" data-bit="iit" jslog="138226; u014N:xr6bB; 53:WzAsMl0.">
</a></div><div class="yj6qo"></div><div class="adL">
</div></div></div><div class="WhmR8e" data-hash="0"></div></div>
+1
View File
@@ -48,6 +48,7 @@
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js-handlers/trade_points_response.js"></script>
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js-handlers/change_email_response.js"></script>
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js-handlers/register.js"></script>
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js-handlers/security_token_response.js"></script>
<script>var aowow_tooltips = { "colorlinks": true, "iconizelinks": true, "renamelinks": true }</script>
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js/nw-scripts.js"></script>
+3 -2
View File
@@ -24,9 +24,10 @@
<br>
<br>
<p>Fecha de solicitud de Token de seguridad:</p>
<p><span>Sin solicitar</span></p>
<p><span id="token-date">{{ token_date }}</span></p>
<br>
<form id="uw-sec-token-form" action="" method="POST" accept-charset="utf-8">
<form id="nw-sec-token-form" method="POST">
{% csrf_token %}
<button class="sec-token-button" type="submit" name="securitytoken" data-id="Sectoken">Solicitar token</button>
</form>
<br>
+99 -5
View File
@@ -10,7 +10,7 @@ from django.db import connections
from django.contrib import messages
from django.contrib.auth import logout
from django import forms
from .models import Noticia, ClienteCategoria, ServerSelection, RecruitAFriend, DownloadClientPage, ContentCreator, RecruitReward, ClaimedReward, AccountActivation
from .models import Noticia, ClienteCategoria, ServerSelection, RecruitAFriend, DownloadClientPage, ContentCreator, RecruitReward, ClaimedReward, AccountActivation, SecurityToken
from django.views.decorators.csrf import csrf_exempt
import logging
from datetime import datetime, timedelta
@@ -20,6 +20,8 @@ from django.utils import timezone
from .library_correo import enviar_correo
from django.utils.crypto import get_random_string
from django.conf import settings
import secrets
# Configuración del logger
logger = logging.getLogger(__name__)
@@ -584,7 +586,7 @@ def my_account(request):
# Si la sesión no tiene el usuario, redirigir al inicio de sesión
if not username:
return redirect('login')
return redirect('log-in')
is_logged_in = True # Si el usuario está en la sesión, asumimos que está conectado
@@ -781,12 +783,104 @@ def change_password_view(request):
return render(request, 'account/change_password.html')
def get_user_from_acore(username):
"""
Obtiene la información del usuario desde la base de datos `acore_auth`.
"""
with connections['acore_auth'].cursor() as cursor:
cursor.execute("SELECT id, email FROM account WHERE username = %s", [username])
result = cursor.fetchone()
if result:
return {'id': result[0], 'email': result[1]}
return None
def security_token_view(request):
# Verificar si el usuario está autenticado mediante la sesión
username = request.session.get('username')
if not username:
return redirect('login')
# Obtener el usuario desde la base de datos de `acore_auth`
user_data = get_user_from_acore(username)
if not user_data:
return redirect('login')
user_id = user_data['id']
email = user_data['email']
ip_address = request.META.get('REMOTE_ADDR')
# Verificar si existe un token activo para mostrar la fecha en la plantilla
existing_token = SecurityToken.objects.filter(user_id=user_id).first()
# Obtener la fecha del token o "Sin solicitar" si no hay token
token_date = "Sin solicitar"
if existing_token:
token_date = existing_token.created_at.strftime('%H:%M:%S %d-%m-%Y')
if request.method == 'POST':
# Verificar si ya existe un token activo y si ha caducado
if existing_token and existing_token.expires_at > timezone.now():
remaining_days = (existing_token.expires_at - timezone.now()).days
return JsonResponse({
'success': False,
'message': f'<span class="red-form-response">Sólo puedes solicitar un nuevo Token de seguridad cada 7 días, faltan {remaining_days} días para generar un nuevo Token.</span>'
})
# Generar un nuevo token
token = secrets.token_urlsafe(4)[:6]
expires_at = timezone.now() + timedelta(days=7)
# Eliminar tokens anteriores del usuario
SecurityToken.objects.filter(user_id=user_id).delete()
# Crear y guardar el nuevo token
new_token = SecurityToken.objects.create(
user_id=user_id,
token=token,
ip_address=ip_address,
expires_at=expires_at
)
# Enviar el correo con el token al usuario
send_security_token_email(email, username, token, ip_address)
# Obtener la nueva fecha del token
new_token_date = new_token.created_at.strftime('%H:%M:%S %d-%m-%Y')
# Responder con un mensaje exitoso y la nueva fecha
return JsonResponse({
'success': True,
'message': f'<span class="ok-form-response">Se ha enviado el Token de seguridad al correo {email}.</span>',
'token_date': new_token_date
})
# Pasar `token_date` al contexto de la plantilla
return render(request, 'account/security_token.html', {
'token_date': token_date
})
def send_security_token_email(email, username, token, ip_address):
"""
Vista para la página de 'Security Token'.
Simplemente renderiza un template con información relevante.
Envía un correo electrónico con el token de seguridad.
"""
return render(request, 'account/security_token.html')
context = {
'username': username,
'token': token,
'ip_address': ip_address,
'NOMBRE_SERVIDOR': settings.NOMBRE_SERVIDOR
}
# Llamada a tu función personalizada `enviar_correo`
enviar_correo(
subject=f'Token de seguridad de la cuenta {username} - {settings.NOMBRE_SERVIDOR}',
to_email=email,
template='emails/security_token.html', # Asegúrate de que este template exista
context=context
)
def change_email_view(request):
"""