Experimenting with sessions

This commit is contained in:
Muyao CHEN 2024-06-28 15:41:25 +02:00
parent 8ec31267c6
commit c15e4da93c
3 changed files with 16 additions and 1 deletions

2
go.mod
View File

@ -6,4 +6,4 @@ require github.com/go-chi/chi/v5 v5.0.14
require github.com/justinas/nosurf v1.1.1
require github.com/alexedwards/scs/v2 v2.8.0 // indirect
require github.com/alexedwards/scs/v2 v2.8.0

View File

@ -29,6 +29,9 @@ func NewHandlers(r *Repository) {
// Home is the about page handler
func (m *Repository) Home(w http.ResponseWriter, r *http.Request) {
remoteIP := r.RemoteAddr
m.App.Session.Put(r.Context(), "remote_ip", remoteIP)
render.RenderTemplate(w, "home.page.tmpl", &models.TemplateData{})
}
@ -37,6 +40,10 @@ func (m *Repository) About(w http.ResponseWriter, r *http.Request) {
// perform some logic
stringMap := make(map[string]string)
stringMap["test"] = "Hello world!"
remoteIP := m.App.Session.GetString(r.Context(), "remote_ip")
stringMap["remote_ip"] = remoteIP
// send the data to the template
render.RenderTemplate(w, "about.page.tmpl", &models.TemplateData{StringMap: stringMap})
}

View File

@ -7,6 +7,14 @@
<p>This is the content</p>
<p>This came from the template: {{index .StringMap "test"}}</p>
<p>
{{if ne (index .StringMap "remote_ip") ""}}
Your remote IP address is {{index .StringMap "remote_ip"}}
{{else}}
I don't know your ip address yet. Visit the <a href="/"></a> so I can set it.
{{end}}
</p>
</div>
</div>
</div>