package usermanager import ( "errors" "time" "strconv" "git.mmnx.de/Moe/databaseutils" "github.com/dgrijalva/jwt-go" "fmt" ) var ( Users *[5]User ) type User struct { ID int Username string Password string Mail string } func (user *User) Login(username string, password string) (string, error) { hmacSampleSecret := []byte("ayyLMAO") row := databaseutils.DBUtil.GetRow("*", "users", "username", username) fmt.Println("%v", row) if len(row) < 1 { // TODO this doesnt work return "", errors.New("User not found") } if password == row[2] { token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{ "username": username, "userid": row[0], "nbf": time.Now().Unix(), "token": "nigger", // TODO db based tokens }) tokenString, _ := token.SignedString(hmacSampleSecret) user.ID, _ = strconv.Atoi(row[0]) user.Username = row[1] user.Mail = row[3] return tokenString, nil } else { return "", errors.New("Password Mismatch") } }