read session to login

This commit is contained in:
Ruidy 2024-05-25 16:53:49 +02:00
parent e1766812c4
commit cc621582f9
No known key found for this signature in database
GPG key ID: E00F51288CB857CC
5 changed files with 9 additions and 10 deletions

View file

@ -6,6 +6,7 @@ import (
"github.com/labstack/echo-contrib/session"
"github.com/labstack/echo/v4"
"github.com/labstack/gommon/log"
)
const (
@ -13,7 +14,7 @@ const (
routeLogin = "/"
)
func MakeAuthMiddleware(secretKey string) echo.MiddlewareFunc {
func MakeAuthMiddleware() echo.MiddlewareFunc {
return func(next echo.HandlerFunc) echo.HandlerFunc {
return func(c echo.Context) error {
if c.Request().RequestURI == routeLogin {
@ -21,8 +22,9 @@ func MakeAuthMiddleware(secretKey string) echo.MiddlewareFunc {
}
s, err := readSession(c)
if s != "foo" || err != nil {
return c.Redirect(http.StatusUnauthorized, routeLogin)
log.Warnf("%=v", s)
if s != "bar" || err != nil {
return c.Redirect(http.StatusSeeOther, routeLogin)
}
return next(c)
}
@ -34,5 +36,5 @@ func readSession(c echo.Context) (string, error) {
if err != nil {
return "", err
}
return fmt.Sprintf("foo=%v\n", sess.Values["foo"]), nil
return fmt.Sprintf("%s", sess.Values["foo"]), nil
}

View file

@ -6,7 +6,6 @@ import (
"github.com/gorilla/sessions"
"github.com/labstack/echo-contrib/session"
"github.com/labstack/echo/v4"
"github.com/labstack/gommon/log"
"github.com/rjNemo/rentease/internal/auth"
"github.com/rjNemo/rentease/internal/view"
)
@ -26,7 +25,6 @@ func handleLogin(as *auth.Service) echo.HandlerFunc {
return func(c echo.Context) error {
sess, err := session.Get(sessionName, c)
if err != nil {
log.Warn(err)
return err
}
sess.Options = &sessions.Options{
@ -41,7 +39,6 @@ func handleLogin(as *auth.Service) echo.HandlerFunc {
sess.Values["foo"] = "bar"
if err := sess.Save(c.Request(), c.Response()); err != nil {
log.Warn(err)
return err
}
return c.Redirect(http.StatusSeeOther, "/bookings")

View file

@ -14,7 +14,7 @@ func (s Server) MountHandlers() {
s.Router.POST("/", handleLogin(s.as))
// admin
g := s.Router.Group("")
g.Use(MakeAuthMiddleware(s.secretKey))
g.Use(MakeAuthMiddleware())
g.GET("/bookings", handleListBookingPage(s.bs, s.hc))
g.GET("/bookings/new", handleNewBookingPage(s.hc))
g.POST("/bookings/new", handleCreateBooking(s.bs))

View file

@ -9,7 +9,7 @@ templ Login() {
<main class="container">
<section>
<h1>Welcome</h1>
<form hx-post="/">
<form method="POST">
<input type="email" name="email" placeholder="john@email.com" aria-label="email" autocomplete="email" autofocus required=""/>
<input type="password" name="password" placeholder="p4Ssw0rD" aria-label="password" autocomplete="password" required=""/>
<button type="submit">Log in</button>

View file

@ -33,7 +33,7 @@ func Login() templ.Component {
templ_7745c5c3_Buffer = templ.GetBuffer()
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<main class=\"container\"><section><h1>Welcome</h1><form hx-post=\"/\"><input type=\"email\" name=\"email\" placeholder=\"john@email.com\" aria-label=\"email\" autocomplete=\"email\" autofocus required=\"\"> <input type=\"password\" name=\"password\" placeholder=\"p4Ssw0rD\" aria-label=\"password\" autocomplete=\"password\" required=\"\"> <button type=\"submit\">Log in</button></form></section></main>")
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<main class=\"container\"><section><h1>Welcome</h1><form method=\"POST\"><input type=\"email\" name=\"email\" placeholder=\"john@email.com\" aria-label=\"email\" autocomplete=\"email\" autofocus required=\"\"> <input type=\"password\" name=\"password\" placeholder=\"p4Ssw0rD\" aria-label=\"password\" autocomplete=\"password\" required=\"\"> <button type=\"submit\">Log in</button></form></section></main>")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}