From 710e2e638f091c3a2e522e73fac1b3c8ad9dee92 Mon Sep 17 00:00:00 2001 From: Tangled Date: Sun, 23 Mar 2025 12:26:30 +0000 Subject: [PATCH] urlencode email verification url's query params when trying to verify a [plus addressed](https://www.google.com/search?q=plus+addressing) email id, opening the received verification link gives "Invalid verification code. Please request a new verification email." this is due to unescaped `+` in the email id. ideally all the query params should be url encoded. --- appview/state/settings.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/appview/state/settings.go b/appview/state/settings.go index e74691d..35ec463 100644 --- a/appview/state/settings.go +++ b/appview/state/settings.go @@ -6,6 +6,7 @@ import ( "fmt" "log" "net/http" + "net/url" "strings" "time" @@ -177,7 +178,7 @@ func (s *State) verifyUrl(did string, email string, code string) string { appUrl = "https://tangled.sh" } - return fmt.Sprintf("%s/settings/emails/verify?did=%s&email=%s&code=%s", appUrl, did, email, code) + return fmt.Sprintf("%s/settings/emails/verify?did=%s&email=%s&code=%s", appUrl, url.QueryEscape(did), url.QueryEscape(email), url.QueryEscape(code)) } func (s *State) SettingsEmailsVerify(w http.ResponseWriter, r *http.Request) { -- 2.51.2