1
1
package handler
2
2
3
3
import (
4
+ "os"
4
5
"time"
5
6
6
7
jwt "github.com/dgrijalva/jwt-go"
7
8
"github.com/gofiber/fiber/v2"
9
+ "github.com/joho/godotenv"
10
+ "github.com/raydwaipayan/onlinejudge-server/server/types"
8
11
)
9
12
10
- // User user object
11
- type User struct {
12
- Username string `json:"username" form:"name"`
13
- Password string `json:"password" form:"password"`
14
- }
15
-
16
- //Register user registration handler
13
+ //Register types.User registration handler
17
14
func Register (c * fiber.Ctx ) error {
18
- u := new (User )
15
+ u := new (types. User )
19
16
20
17
if err := c .BodyParser (u ); err != nil {
21
18
return c .SendStatus (fiber .StatusBadRequest )
@@ -24,9 +21,10 @@ func Register(c *fiber.Ctx) error {
24
21
return c .SendStatus (fiber .StatusOK )
25
22
}
26
23
27
- //Login user login handler
24
+ //Login types.User login handler
28
25
func Login (c * fiber.Ctx ) error {
29
- u := new (User )
26
+ godotenv .Load ()
27
+ u := new (types.User )
30
28
31
29
if err := c .BodyParser (u ); err != nil {
32
30
return c .SendStatus (fiber .StatusBadRequest )
@@ -35,11 +33,11 @@ func Login(c *fiber.Ctx) error {
35
33
token := jwt .New (jwt .SigningMethodHS256 )
36
34
37
35
claims := token .Claims .(jwt.MapClaims )
38
- claims ["name " ] = u .Username
36
+ claims ["email " ] = u .Email
39
37
claims ["admin" ] = false
40
38
claims ["exp" ] = time .Now ().Add (time .Hour * 96 ).Unix ()
41
39
42
- t , err := token .SignedString ([]byte ("secret" ))
40
+ t , err := token .SignedString ([]byte (os . Getenv ( "SECRET_KEY" ) ))
43
41
if err != nil {
44
42
return c .SendStatus (fiber .StatusInternalServerError )
45
43
}
0 commit comments