From bfe729a5a4035808f1a03e3aa3f7bbbb76e55a30 Mon Sep 17 00:00:00 2001 From: liuxiaolong <736321739@qq.com> Date: 星期四, 20 六月 2019 16:22:46 +0800 Subject: [PATCH] add jwt auth --- /dev/null | 25 ------------------------- controllers/user.go | 9 +++++++++ middlewares/auth/auth.go | 1 + middlewares/auth/jwt.go | 1 + 4 files changed, 11 insertions(+), 25 deletions(-) diff --git a/controllers/auth.go b/controllers/auth.go deleted file mode 100644 index 7ef9572..0000000 --- a/controllers/auth.go +++ /dev/null @@ -1,44 +0,0 @@ -package controllers - -import ( - "webserver/middlewares" - "fmt" - "github.com/gin-gonic/gin" -) - -const userId string = "abc123" - -func Signup(c *gin.Context) { - //var people PeoperController - //people.CreatePerson(c) -} - -func Login(c *gin.Context) { - //var person models.Person - //c.BindJSON(&person) - //sinpass := person.Password - //fmt.Println(sinpass, person.UserName) - // - //var getDB = models.GetDB() - //if err := getDB.Where("user_name = ?", person.UserName).First(&person).Error; err != nil { - // fmt.Println("error") - // c.AbortWithStatus(404) - //} else { - // fmt.Println(person) - // if person.Password != sinpass { - // c.AbortWithStatus(500) - // } - // Auth(c) - //} - -} - -func Auth(c *gin.Context) { - - token, err := middlewares.GenerateToken([]byte(middlewares.SigningKey), userId) - if err != nil { - fmt.Println(err) - - } - c.JSON(200, token) -} diff --git a/controllers/user.go b/controllers/user.go new file mode 100644 index 0000000..e212688 --- /dev/null +++ b/controllers/user.go @@ -0,0 +1,9 @@ +package controllers + +import ( + "github.com/gin-gonic/gin" +) + +func Login(c *gin.Context) { + +} \ No newline at end of file diff --git a/middlewares/auth.go b/middlewares/auth.go deleted file mode 100644 index b597409..0000000 --- a/middlewares/auth.go +++ /dev/null @@ -1,40 +0,0 @@ -package middlewares - -import ( - "fmt" - "github.com/dgrijalva/jwt-go" - "github.com/gin-gonic/gin" - "strings" -) - -func AuthHandler() gin.HandlerFunc { - return func(c *gin.Context) { - token := c.Request.Header.Get("Authorization") - // Check if toke in correct format - // ie Bearer: xx03xllasx - b := "Bearer " - if !strings.Contains(token, b) { - c.JSON(403, gin.H{"message": "Your request is not authorized"}) - c.Abort() - return - } - t := strings.Split(token, b) - if len(t) < 2 { - c.JSON(403, gin.H{"message": "An authorization token was not supplied"}) - c.Abort() - return - } - // Validate token - valid, err := ValidateToken(t[1], SigningKey) - if err != nil { - fmt.Println("enter error") - c.JSON(403, gin.H{"message": "Invalid authorization token"}) - c.Abort() - return - } - - // set userId Variable - c.Set("userId", valid.Claims.(jwt.MapClaims)["user_id"]) - c.Next() - } -} diff --git a/middlewares/auth/auth.go b/middlewares/auth/auth.go new file mode 100644 index 0000000..8832b06 --- /dev/null +++ b/middlewares/auth/auth.go @@ -0,0 +1 @@ +package auth diff --git a/middlewares/auth/jwt.go b/middlewares/auth/jwt.go new file mode 100644 index 0000000..8832b06 --- /dev/null +++ b/middlewares/auth/jwt.go @@ -0,0 +1 @@ +package auth diff --git a/middlewares/main.go b/middlewares/main.go deleted file mode 100644 index cf7249e..0000000 --- a/middlewares/main.go +++ /dev/null @@ -1,6 +0,0 @@ -package middlewares - -const ( - SigningKey = "abc123456789" -) - diff --git a/middlewares/tokens.go b/middlewares/tokens.go deleted file mode 100644 index 116e036..0000000 --- a/middlewares/tokens.go +++ /dev/null @@ -1,25 +0,0 @@ -package middlewares - -import ( - "github.com/dgrijalva/jwt-go" - "time" -) - -func GenerateToken(k []byte, userId string) (string, error) { - // Create the token - token := jwt.New(jwt.SigningMethodHS256) - // Set some claims - claims := make(jwt.MapClaims) - claims["user_id"] = userId - claims["exp"] = time.Now().Add(time.Minute).Unix() - token.Claims = claims - // Sign and get the complete encoded token as a string - tokenString, err := token.SignedString(k) - return tokenString, err -} - -func ValidateToken(t string, k string) (*jwt.Token, error) { - token, err := jwt.Parse(t, func(token *jwt.Token) (interface{}, error) { return []byte(k), nil }) - - return token, err -} -- Gitblit v1.8.0