func (m *Mongo) StudentLogin(c *gin.Context) { var loginForm struct { Username string `json:"username"` Password string `json:"password"` } err := c.BindJSON(&loginForm) if err != nil { log.Println("Github retards", err) utils.ErrorResponse(c, http.StatusInternalServerError, "Incorrect params") return } var studMahan models.Student studMahan.Username = loginForm.Username studMahan.Password = loginForm.Password stud, err := studMahan.CheckUserPassword(m.Database) if err != nil { log.Println("Absent", err) utils.ErrorResponse(c, http.StatusNotFound, "No such user") return } if stud.Username != "" { //make the f****n token /** Create the token */ token := jwt.New(jwt.SigningMethodHS256) token.Claims["username"] = stud.Username token.Claims["group"] = stud.Group token.Claims["exp"] = time.Now().Add(time.Hour * 72).Unix() tokenString, err := token.SignedString([]byte(utils.MySigningKey)) if err != nil { utils.ErrorResponse(c, http.StatusInternalServerError, "Error creating token") return } c.JSON(http.StatusOK, gin.H{ "token": tokenString, }) } else { utils.ErrorResponse(c, http.StatusNotFound, "No such user") return } }