aboutsummaryrefslogtreecommitdiff
path: root/backend/middleware/auth.go
diff options
context:
space:
mode:
Diffstat (limited to 'backend/middleware/auth.go')
-rw-r--r--backend/middleware/auth.go19
1 files changed, 11 insertions, 8 deletions
diff --git a/backend/middleware/auth.go b/backend/middleware/auth.go
index 21e62e3..b5ad762 100644
--- a/backend/middleware/auth.go
+++ b/backend/middleware/auth.go
@@ -12,12 +12,7 @@ import (
12) 12)
13 13
14func CheckAuth(c *gin.Context) { 14func CheckAuth(c *gin.Context) {
15 // Get auth cookie 15 tokenString := c.GetHeader("Authorization")
16 tokenString, err := c.Cookie("auth")
17 if err != nil {
18 c.Next()
19 return
20 }
21 // Validate token 16 // Validate token
22 token, err := jwt.Parse(tokenString, func(token *jwt.Token) (interface{}, error) { 17 token, err := jwt.Parse(tokenString, func(token *jwt.Token) (interface{}, error) {
23 if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok { 18 if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok {
@@ -25,6 +20,14 @@ func CheckAuth(c *gin.Context) {
25 } 20 }
26 return []byte(os.Getenv("SECRET_KEY")), nil 21 return []byte(os.Getenv("SECRET_KEY")), nil
27 }) 22 })
23 if token == nil {
24 c.Next()
25 return
26 }
27 if err != nil {
28 c.Next()
29 return
30 }
28 if claims, ok := token.Claims.(jwt.MapClaims); ok && token.Valid { 31 if claims, ok := token.Claims.(jwt.MapClaims); ok && token.Valid {
29 // Check exp 32 // Check exp
30 if float64(time.Now().Unix()) > claims["exp"].(float64) { 33 if float64(time.Now().Unix()) > claims["exp"].(float64) {
@@ -34,8 +37,8 @@ func CheckAuth(c *gin.Context) {
34 // Get user from DB 37 // Get user from DB
35 var user models.User 38 var user models.User
36 database.DB.QueryRow(`SELECT * FROM users WHERE steam_id = $1;`, claims["sub"]).Scan( 39 database.DB.QueryRow(`SELECT * FROM users WHERE steam_id = $1;`, claims["sub"]).Scan(
37 &user.SteamID, &user.Username, &user.AvatarLink, &user.CountryCode, 40 &user.SteamID, &user.Username, &user.AvatarLink,
38 &user.CreatedAt, &user.UpdatedAt, &user.UserType) 41 &user.CountryCode, &user.CreatedAt, &user.UpdatedAt)
39 if user.SteamID == "" { 42 if user.SteamID == "" {
40 c.Next() 43 c.Next()
41 return 44 return