@@ -8,12 +8,12 @@ import (
8
8
"github.com/gofiber/fiber/v2/middleware/session"
9
9
)
10
10
11
- type Flash struct {
11
+ type LoginData struct {
12
12
Flash string
13
13
}
14
14
15
15
func Login (c * fiber.Ctx , cc core.Context ) error {
16
- return c .Render ("login" , Flash {})
16
+ return c .Render ("login" , LoginData {})
17
17
}
18
18
19
19
func AuthLogin (c * fiber.Ctx , cc core.Context , store * session.Store ) error {
@@ -22,65 +22,73 @@ func AuthLogin(c *fiber.Ctx, cc core.Context, store *session.Store) error {
22
22
password := c .FormValue ("password" )
23
23
24
24
// Execute
25
- err := procs .HTTPLogin (cc , username , password )
25
+ err := procs .AuthHTTPLogin (cc , username , password )
26
26
if err != nil {
27
27
if helpers .IsHTMXRequest (c ) {
28
- return c .Render ("login" , Flash {Flash : err .Error ()}, "form" )
28
+ return c .Render ("login" , LoginData {Flash : err .Error ()}, "form" )
29
29
}
30
- return c .Render ("login" , Flash {Flash : err .Error ()})
30
+ return c .Render ("login" , LoginData {Flash : err .Error ()})
31
31
}
32
32
33
33
// Response
34
34
sess , err := store .Get (c )
35
35
if err != nil {
36
- panic ( err )
36
+ return helpers . Error ( c , err )
37
37
}
38
38
39
39
sess .Set ("auth" , true )
40
40
if err := sess .Save (); err != nil {
41
- panic ( err )
41
+ return helpers . Error ( c , err )
42
42
}
43
43
44
- return redirect (c , "/" )
44
+ return helpers . Redirect (c , "/" )
45
45
}
46
46
47
47
func AuthLogout (c * fiber.Ctx , cc core.Context , store * session.Store ) error {
48
48
sess , err := store .Get (c )
49
49
if err != nil {
50
- panic ( err )
50
+ return helpers . Error ( c , err )
51
51
}
52
52
53
53
sess .Delete ("auth" )
54
54
if err := sess .Save (); err != nil {
55
- panic ( err )
55
+ return helpers . Error ( c , err )
56
56
}
57
57
58
- return redirect (c , "/login" )
58
+ return helpers . Redirect (c , "/login" )
59
59
}
60
60
61
61
func AuthRequire (c * fiber.Ctx , cc core.Context , store * session.Store ) error {
62
+ if procs .AuthHTTPAnonymous (cc ) {
63
+ return c .Next ()
64
+ }
65
+
62
66
sess , err := store .Get (c )
63
67
if err != nil {
64
68
panic (err )
65
69
}
66
70
67
71
auth := sess .Get ("auth" )
68
72
if auth == nil {
69
- return redirect (c , "/login" )
73
+ return helpers . Redirect (c , "/login" )
70
74
}
71
75
72
76
return c .Next ()
73
77
}
74
78
75
79
func AuthSkip (c * fiber.Ctx , cc core.Context , store * session.Store ) error {
80
+ if procs .AuthHTTPAnonymous (cc ) {
81
+ return helpers .Redirect (c , "/" )
82
+ }
83
+
76
84
sess , err := store .Get (c )
77
85
if err != nil {
78
- panic ( err )
86
+ return helpers . Error ( c , err )
79
87
}
80
88
81
89
auth := sess .Get ("auth" )
82
90
if auth != nil {
83
- return redirect (c , "/" )
91
+ return helpers . Redirect (c , "/" )
84
92
}
85
93
86
94
return c .Next ()
0 commit comments