From 4d9c1ebcfc906e1ca06b2326eafcb762caf0e3b4 Mon Sep 17 00:00:00 2001 From: Joshua Date: Sat, 3 Aug 2024 23:12:57 -0600 Subject: [PATCH] syncing again --- .../src/security-layer/container/router.go | 34 ++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/backend/src/security-layer/container/router.go b/backend/src/security-layer/container/router.go index aa1bde9..11e1260 100644 --- a/backend/src/security-layer/container/router.go +++ b/backend/src/security-layer/container/router.go @@ -24,6 +24,7 @@ import ( "strings" "time" + "github.com/golang-jwt/jwt/v5" "github.com/gorilla/mux" ) @@ -88,6 +89,36 @@ var chats []Chat // TODO: Dynamically get key? Need to research best way to store private keys between two devices. var key = []byte("passphrasewhichneedstobe32bytes!") +func createToken(username string) (string, error) { + token := jwt.NewWithClaims(jwt.SigningMethodHS256, + jwt.MapClaims { + "username": username, + "exp": time.Now().Add(time.Hour * 24).Unix(), + }) + + jwtToken, err := token.SignedString(key) + if err != nil { + return "Error creating JWT.", err + } + return jwtToken, nil +} + +func verifyToken(tokenString string) error { + token, err := jwt.Parse(tokenString, func(token *jwt.Token) (interface{}, error) { + return secretKey, nil + }) + + if err != nil { + return err + } + + if !token.Valid { + return fmt.Errorf("invalid token") + } + + return nil +} + func hash(text string) string { hasher := sha1.New() hasher.Write([]byte(text)) @@ -334,7 +365,8 @@ func main() { var wg sync.WaitGroup r := mux.NewRouter() - portfolioDir := "/home/violet/documents/development/portfolio/public_html/" + portfolioDir := "/Users/ashton/Documents/Development/portfolio/public_html/" // MacBook dir + //portfolioDir := "/home/violet/documents/development/portfolio/public_html/" // ThinkPad dir r.PathPrefix("/").Handler(http.FileServer(http.Dir(portfolioDir))) srv := &http.Server{