| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- 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")
- }
- }
|