Real email send after login

Signed-off-by: Asai Neko <sugar@sne.moe>
This commit is contained in:
2025-12-25 11:50:53 +08:00
parent 43f95ba4af
commit a5a354e929

View File

@@ -5,6 +5,7 @@ import (
"net/url" "net/url"
"nixcn-cms/data" "nixcn-cms/data"
"nixcn-cms/internal/crypto/jwt" "nixcn-cms/internal/crypto/jwt"
"nixcn-cms/pkgs/email"
"nixcn-cms/pkgs/magiclink" "nixcn-cms/pkgs/magiclink"
"nixcn-cms/pkgs/turnstile" "nixcn-cms/pkgs/turnstile"
@@ -41,16 +42,26 @@ func RequestMagicLink(c *gin.Context) {
return return
} }
link, err := url.JoinPath(viper.GetString("server.external_url"), "/api/v1/auth/magic/verify?token="+token) link, err := url.JoinPath(viper.GetString("server.external_url"), "/login?ticket="+token)
if err != nil { if err != nil {
log.Error("Magic link join failed!") log.Error("Magic link join failed!")
c.JSON(500, gin.H{"message": "magic link join failed"}) c.JSON(500, gin.H{"status": "magic link join failed"})
return return
} }
// TODO send email // Send email using resend
resend, err := email.NewResendClient()
if err != nil {
log.Error(err)
c.JSON(500, gin.H{"status": "invilad email config"})
}
resend.Send(
req.Email,
"NixCN CSM Email Verify",
"Click the link below to verify your email. This link will expire in 10 minutes.\n"+link,
)
c.JSON(200, gin.H{"message": "magic link sent", "magic_link": link}) c.JSON(200, gin.H{"status": "magic link sent"})
} }
func VerifyMagicLink(c *gin.Context) { func VerifyMagicLink(c *gin.Context) {