Begin sessions
This commit is contained in:
@ -2,6 +2,8 @@ package handlers
|
||||
|
||||
import (
|
||||
"fiber-sessions/app/templates"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/gofiber/fiber/v2"
|
||||
)
|
||||
@ -12,15 +14,32 @@ var pcLogin templates.PageContext = templates.PageContext{
|
||||
}
|
||||
|
||||
func checkUsernamePassword(username string, password string) bool {
|
||||
return username == "pero" && password == "pero"
|
||||
return true
|
||||
// return username == "pero" && password == "pero"
|
||||
}
|
||||
|
||||
func Login(f *fiber.Ctx) error {
|
||||
session, err := sessionStore.Get(f)
|
||||
if err != nil {
|
||||
panic("Error gettings sessionStore: " + err.Error())
|
||||
}
|
||||
|
||||
userId := session.Get("userId")
|
||||
fmt.Printf("userId: %+v\n", userId)
|
||||
|
||||
Render(f, templates.RenderLogin(pcLogin))
|
||||
return nil
|
||||
}
|
||||
|
||||
func LoginSubmit(f *fiber.Ctx) error {
|
||||
session, err := sessionStore.Get(f)
|
||||
if err != nil {
|
||||
panic("Error gettings sessionStore: " + err.Error())
|
||||
}
|
||||
|
||||
userId := session.Get("userId")
|
||||
fmt.Printf("userId: %+v\n", userId)
|
||||
|
||||
content := templates.LoginFormValidationContent{
|
||||
Validated: true,
|
||||
Username: f.FormValue("username"),
|
||||
@ -40,6 +59,12 @@ func LoginSubmit(f *fiber.Ctx) error {
|
||||
|
||||
if !hasError {
|
||||
if checkUsernamePassword(content.Username, content.Password) {
|
||||
session.Set("userId", "neki-user-id")
|
||||
session.SetExpiry(time.Second * 60)
|
||||
if err := session.Save(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
f.Set("HX-Location", "/")
|
||||
return nil
|
||||
} else {
|
||||
|
||||
11
app/handlers/usersession.go
Normal file
11
app/handlers/usersession.go
Normal file
@ -0,0 +1,11 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"github.com/gofiber/fiber/v2/middleware/session"
|
||||
"github.com/gofiber/storage/memory/v2"
|
||||
)
|
||||
|
||||
var sessionStorage = memory.New()
|
||||
var sessionStore = session.New(session.Config{
|
||||
Storage: sessionStorage,
|
||||
})
|
||||
@ -61,7 +61,7 @@ templ RenderLogin(pc PageContext) {
|
||||
hx-target="#login-form-container"
|
||||
hx-swap="outerHTML"
|
||||
>
|
||||
@LoginFormContent(LoginFormValidationContent{})
|
||||
@LoginFormContent(LoginFormValidationContent{Username: "pero", Password: "pero"})
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -216,7 +216,7 @@ func RenderLogin(pc PageContext) templ.Component {
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = LoginFormContent(LoginFormValidationContent{}).Render(ctx, templ_7745c5c3_Buffer)
|
||||
templ_7745c5c3_Err = LoginFormContent(LoginFormValidationContent{Username: "pero", Password: "pero"}).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user