feat: login/registration messages

This commit is contained in:
Teajey 2024-05-23 00:14:38 +12:00
parent 9bf854db1a
commit 4cfa05d9fd
Signed by: Teajey
GPG Key ID: 970E790FE834A713
7 changed files with 50 additions and 13 deletions

28
auth/login_get.go Normal file
View File

@ -0,0 +1,28 @@
package auth
import (
"lishwist/templates"
"log"
"net/http"
)
type LoginGetProps struct {
SuccessfulRegistration bool
}
func (auth *AuthMiddleware) Login(w http.ResponseWriter, r *http.Request) {
session, _ := auth.Store.Get(r, "lishwist_user")
successfulReg, ok := session.Values["successful_registration"].(bool)
if ok {
delete(session.Values, "successful_registration")
if err := session.Save(r, w); err != nil {
log.Println("Couldn't save session:", err)
http.Error(w, "Something went wrong. Error code: Zuko", http.StatusInternalServerError)
return
}
}
templates.Execute(w, "login.gotmpl", LoginGetProps{
SuccessfulRegistration: successfulReg,
})
}

View File

@ -1,6 +1,7 @@
package auth
import (
"log"
"net/http"
"lishwist/db"
@ -41,5 +42,13 @@ func (auth *AuthMiddleware) RegisterPost(w http.ResponseWriter, r *http.Request)
return
}
session, _ := auth.Store.Get(r, "lishwist_user")
session.Values["successful_registration"] = true
if err := session.Save(r, w); err != nil {
log.Println("Couldn't save session:", err)
http.Error(w, "Something went wrong. Error code: Zuko", http.StatusInternalServerError)
return
}
http.Redirect(w, r, "/", http.StatusSeeOther)
}

View File

@ -32,7 +32,7 @@ func main() {
publicMux.HandleFunc("GET /register", templates.Register)
publicMux.HandleFunc("POST /register", authMiddleware.RegisterPost)
publicMux.HandleFunc("GET /", templates.Login)
publicMux.HandleFunc("GET /", authMiddleware.Login)
publicMux.HandleFunc("POST /", authMiddleware.LoginPost)
protectedMux.HandleFunc("GET /", ctx.Home)

View File

@ -1,9 +0,0 @@
package templates
import (
"net/http"
)
func Login(w http.ResponseWriter, r *http.Request) {
Execute(w, "login.gotmpl", nil)
}

View File

@ -2,7 +2,12 @@
{{end}}
{{define "body"}}
<div class="flex-grow-1 d-flex justify-content-center align-items-center">
<div class="container d-flex flex-grow-1 justify-content-center align-items-center flex-column">
{{if .SuccessfulRegistration}}
<div class="alert alert-success" role="alert">
<p class="mb-0">Registration successful. Now you can login.</p>
</div>
{{end}}
<form method="post">
<div class="d-flex flex-column gap-3">
<label>

View File

@ -2,7 +2,11 @@
{{end}}
{{define "body"}}
<div class="flex-grow-1 d-flex justify-content-center align-items-center">
<div class="container d-flex flex-grow-1 justify-content-center align-items-center flex-column">
<div class="alert alert-warning" role="alert">
<p>Your password will be stored in a safe, responsible manner; but don't trust my programming skills!</p>
<p class="mb-0">Maybe use a password here that you don't use for important things...</p>
</div>
<form method="post">
<div class="d-flex flex-column gap-3">
<label>