diff --git a/database/models/user.go b/database/models/user.go index d563e33..d80ec05 100644 --- a/database/models/user.go +++ b/database/models/user.go @@ -3,7 +3,6 @@ package models import ( "github.com/dgrijalva/jwt-go" "github.com/labstack/echo/v4" - "net/http" "time" ) @@ -19,22 +18,20 @@ type User struct { CreatedAt time.Time } -// GenerateToken : Generate Token -func (u *User) GenerateAccessToken(c echo.Context, user *User) error { - if u.ID == user.ID { - token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{ - "id": u.ID, - }) +// GenerateAccessToken : Generate Access Token +func (u *User) GenerateAccessToken(c echo.Context) error { + token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{ + "id": u.ID, + }) - t, err := token.SignedString([]byte("secret")) - if err != nil { - return err - } - - return c.JSON(http.StatusOK, map[string]string{ - u.AccessToken: t, - }) + t, err := token.SignedString([]byte("secret")) + if err != nil { + return err } - - return echo.ErrUnauthorized + u.AccessToken = t + return err } + +func (u *User) GenerateRefreshToken(c echo.Context) error { + return nil +} \ No newline at end of file diff --git a/routes/auth/auth.ctrl.go b/routes/auth/auth.ctrl.go index 1e710fe..61e1189 100644 --- a/routes/auth/auth.ctrl.go +++ b/routes/auth/auth.ctrl.go @@ -8,7 +8,7 @@ import ( "gorm.io/gorm" ) -// Register : Register Router +// Auth : Auth Router func (AuthRouter) Auth(c echo.Context) error { type RequestBody struct { Login string `json:"login"` @@ -50,10 +50,10 @@ func (AuthRouter) Auth(c echo.Context) error { } } - //err = user.GenerateAccessToken(c, &user) - //if err != nil { - // return err - //} + err := user.GenerateAccessToken(c) + if err != nil { + return err + } //var cookie http.Cookie // diff --git a/routes/create/create.ctrl.go b/routes/create/create.ctrl.go index 67e8672..ee73851 100644 --- a/routes/create/create.ctrl.go +++ b/routes/create/create.ctrl.go @@ -1,13 +1,18 @@ package create import ( + "github.com/labstack/gommon/random" + "gorm.io/gorm" + "math/rand" + "net/http" + "github.com/bumi/lndhub.go/database/models" "github.com/labstack/echo/v4" "github.com/sirupsen/logrus" - "gorm.io/gorm" - "net/http" ) +const letterBytes = random.Alphanumeric + func (CreateUserRouter) CreateUser(c echo.Context) error { type RequestBody struct { PartnerID string `json:"partnerid"` @@ -21,16 +26,22 @@ func (CreateUserRouter) CreateUser(c echo.Context) error { db, _ := c.Get("db").(*gorm.DB) user := &models.User{} - //ToDo random login func - user.Login = "random" - //ToDo random password func - user.Password = "random" + user.Login = RandStringBytes(8) + user.Password = RandStringBytes(15) result := db.Create(&user) logrus.Printf("%v", result) return c.JSON(http.StatusOK, echo.Map{ - "user": user, + "user": user, }) } + +func RandStringBytes(n int) string { + b := make([]byte, n) + for i := range b { + b[i] = letterBytes[rand.Intn(len(letterBytes))] + } + return string(b) +}