From b0bd323bee5991c67fd4cc0f50de0ea34109cc3b Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Wed, 11 Dec 2024 17:53:50 +0100 Subject: [PATCH] add FRONTEND_URL and password-reset implementation --- .env.example | 3 +- src/routes/email.ts | 3 + src/templates/password-reset/de.html | 305 ++++++++++++++++++++++++++- src/templates/password-reset/de.txt | 20 +- src/templates/password-reset/en.html | 304 +++++++++++++++++++++++++- src/templates/password-reset/en.txt | 20 +- 6 files changed, 624 insertions(+), 31 deletions(-) diff --git a/.env.example b/.env.example index ababd0f..b6e66f4 100644 --- a/.env.example +++ b/.env.example @@ -4,4 +4,5 @@ SMTP_USER="project.1" SMTP_PASS="secret.1" EMAIL_FROM="noreply@lauf-fuer-kaya.de" EMAIL_REPLYTO="info@lauf-fuer-kaya.de" -REDIS_URL=redis://localhost:6379 \ No newline at end of file +REDIS_URL=redis://localhost:6379 +FRONTEND_URL="https://run.lauf-fuer-kaya.de" \ No newline at end of file diff --git a/src/routes/email.ts b/src/routes/email.ts index ea65e5b..bb08875 100644 --- a/src/routes/email.ts +++ b/src/routes/email.ts @@ -42,6 +42,9 @@ emailRouter.post('/', zValidator('json', sendEmailSchema), async (c) => { const dataURL = await generateBarcodeDataURL(data.barcode_content); data.barcode_url = dataURL; } + if (templateName === "password-reset") { + data.reset_link= `${process.env.FRONTEND_URL}/reset/${(Buffer.from(data.token)).toString("base64")}` + } await emailService.sendEmail({ to, subject, diff --git a/src/templates/password-reset/de.html b/src/templates/password-reset/de.html index dac8602..41a4eae 100644 --- a/src/templates/password-reset/de.html +++ b/src/templates/password-reset/de.html @@ -1,7 +1,298 @@ -

Anfrage zum Zurücksetzen des Passworts

-

Hallo {{name}},

-

Wir haben eine Anfrage zum Zurücksetzen Ihres Passworts erhalten. Klicken Sie auf den untenstehenden Link, um ein neues Passwort zu erstellen:

-Passwort zurücksetzen -

Dieser Link läuft in {{expiresIn}} ab.

-

Falls Sie diese Anfrage nicht gestellt haben, ignorieren Sie bitte diese E-Mail oder kontaktieren Sie den Support, wenn Sie Bedenken haben.

-

Mit freundlichen Grüßen,
Ihr Support-Team

\ No newline at end of file + + + + + + + + + + + + + + + + +
+ Anfrage zum Zurücksetzen des Passworts +
+  ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ +
+
+ + + + + + +
+ + + + + + +
+ Logo +
+

+ Anfrage zum Zurücksetzen des Passworts +

+

+ Hallo 👋 +

+

+ Wir haben eine Anfrage zum Zurücksetzen deines Passworts + erhalten.
Verwende den folgenden Link, um ein neues Passwort + zu erstellen: +

+

+ {{reset_link}} +

+

+ Falls du diese Anfrage nicht gestellt hast, ignoriere bitte diese + E-Mail. +

+

+ Sportliche Grüße 🏃‍♂️
Dein Team Lauf für Kaya! +

+
+

+ Lauf für Kaya! Powered by ODIT.Services.
Impressum + - + Datenschutzerklärung +

+
+ + + diff --git a/src/templates/password-reset/de.txt b/src/templates/password-reset/de.txt index e3e7e3b..8416740 100644 --- a/src/templates/password-reset/de.txt +++ b/src/templates/password-reset/de.txt @@ -1,13 +1,17 @@ -Anfrage zum Zurücksetzen des Passworts +Hallo 👋 -Hallo {{name}}, +Wir haben eine Anfrage zum Zurücksetzen deines Passworts erhalten. +Verwende den folgenden Link, um ein neues Passwort zu erstellen: +{{reset_link}} -Wir haben eine Anfrage zum Zurücksetzen Ihres Passworts erhalten. Verwenden Sie den folgenden Link, um ein neues Passwort zu erstellen: -{{resetLink}} +Falls du diese Anfrage nicht gestellt hast, ignoriere bitte diese E-Mail. -Dieser Link läuft in {{expiresIn}} ab. +Sportliche Grüße 🏃‍♂️ +Dein Team Lauf für Kaya! -Falls Sie diese Anfrage nicht gestellt haben, ignorieren Sie bitte diese E-Mail oder kontaktieren Sie den Support, wenn Sie Bedenken haben. +- -Mit freundlichen Grüßen, -Ihr Support-Team \ No newline at end of file +Lauf für Kaya! +Powered by ODIT.Services (https://odit.services) +Impressum: https://lauf-fuer-kaya.de/impressum/ +Datenschutzerklärung: https://lauf-fuer-kaya.de/datenschutz/ \ No newline at end of file diff --git a/src/templates/password-reset/en.html b/src/templates/password-reset/en.html index 5542c3b..7ecf62f 100644 --- a/src/templates/password-reset/en.html +++ b/src/templates/password-reset/en.html @@ -1,7 +1,297 @@ -

Password Reset Request

-

Hello {{name}},

-

We received a request to reset your password. Click the link below to create a new password:

-Reset Password -

This link will expire in {{expiresIn}}.

-

If you didn't request this password reset, please ignore this email or contact support if you have concerns.

-

Best regards,
Your Support Team

\ No newline at end of file + + + + + + + + + + + + + + + + +
+ Password-Reset +
+  ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ ‌​‍‎‏ +
+
+ + + + + + +
+ + + + + + +
+ Logo +
+

+ Password-Reset +

+

+ Hi 👋 +

+

+ We received a request to reset your password.
Use the + following link to create a new password: +

+

+ {{reset_link}} +

+

+ If you didn't request this password reset, please ignore this + email. +

+

+ Sporty Greetings 🏃‍♂️
Your Team Lauf für Kaya! +

+
+

+ Lauf für Kaya! Powered by ODIT.Services.
Imprint + - + Privacy Policy +

+
+ + + diff --git a/src/templates/password-reset/en.txt b/src/templates/password-reset/en.txt index d21021b..5184d67 100644 --- a/src/templates/password-reset/en.txt +++ b/src/templates/password-reset/en.txt @@ -1,13 +1,17 @@ -Password Reset Request +Hello 👋 -Hello {{name}}, +We received a request to reset your password. +Use the following link to create a new password: +{{reset_link}} -We received a request to reset your password. Use the following link to create a new password: -{{resetLink}} +If you didn't request this password reset, please ignore this email. -This link will expire in {{expiresIn}}. +Sporty Greetings 🏃‍♂️ +Your Team Lauf für Kaya! -If you didn't request this password reset, please ignore this email or contact support if you have concerns. +- -Best regards, -Your Support Team \ No newline at end of file +Lauf für Kaya! +Powered by ODIT.Services (https://odit.services) +Imprint: https://lauf-fuer-kaya.de/impressum/ +Privacy Policy: https://lauf-fuer-kaya.de/datenschutz/ \ No newline at end of file