User registration now works.
This commit is contained in:
parent
eaaf309260
commit
45c541ee7c
3 changed files with 24 additions and 4 deletions
|
|
@ -46,9 +46,9 @@ func LoginUser(result *data.User, login *data.Login) (bool, error) {
|
||||||
return login.Username == result.Username && pass_good == nil, nil
|
return login.Username == result.Username && pass_good == nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func SetUserPassword(password string, user *data.User) error {
|
func SetUserPassword(user *data.User) error {
|
||||||
hashed, err := bcrypt.GenerateFromPassword([]byte(password), 12)
|
hashed, err := bcrypt.GenerateFromPassword([]byte(user.Password), 12)
|
||||||
if err == nil { return err }
|
if err != nil { return err }
|
||||||
|
|
||||||
user.Password = string(hashed)
|
user.Password = string(hashed)
|
||||||
return nil
|
return nil
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,23 @@ func GetApiStreamIdLinks(c *fiber.Ctx) error {
|
||||||
return IfErrNil(err, c)
|
return IfErrNil(err, c)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func PostApiRegister(c *fiber.Ctx) error {
|
||||||
|
user, err := ReceivePost[data.User](c)
|
||||||
|
if err != nil { return IfErrNil(err, c) }
|
||||||
|
|
||||||
|
err = SetUserPassword(user)
|
||||||
|
if err != nil { return IfErrNil(err, c) }
|
||||||
|
|
||||||
|
sql, args, err := sq.Insert("user").
|
||||||
|
Columns("username", "email", "password").
|
||||||
|
Values(user.Username, user.Email, user.Password).ToSql()
|
||||||
|
|
||||||
|
err = data.Insert(err, sql, args...)
|
||||||
|
if err != nil { return IfErrNil(err, c) }
|
||||||
|
|
||||||
|
return c.Redirect("/login/")
|
||||||
|
}
|
||||||
|
|
||||||
func PostApiLogin(c *fiber.Ctx) error {
|
func PostApiLogin(c *fiber.Ctx) error {
|
||||||
var user data.User
|
var user data.User
|
||||||
|
|
||||||
|
|
@ -84,6 +101,8 @@ func PostApiLink(c *fiber.Ctx) error {
|
||||||
Values(link.StreamId, link.Url, link.Description).ToSql()
|
Values(link.StreamId, link.Url, link.Description).ToSql()
|
||||||
|
|
||||||
err = data.Insert(err, sql, args...)
|
err = data.Insert(err, sql, args...)
|
||||||
|
if(err != nil) { goto fail }
|
||||||
|
|
||||||
return c.Redirect("/live/")
|
return c.Redirect("/live/")
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
|
|
@ -99,6 +118,7 @@ func Setup(app *fiber.App) {
|
||||||
app.Get("/api/stream/:id/links", GetApiStreamIdLinks)
|
app.Get("/api/stream/:id/links", GetApiStreamIdLinks)
|
||||||
app.Post("/api/login", PostApiLogin)
|
app.Post("/api/login", PostApiLogin)
|
||||||
app.Post("/api/link", PostApiLink)
|
app.Post("/api/link", PostApiLink)
|
||||||
|
app.Post("/api/register", PostApiRegister)
|
||||||
|
|
||||||
app.Get("/test/:name/", func (c *fiber.Ctx) error {
|
app.Get("/test/:name/", func (c *fiber.Ctx) error {
|
||||||
return c.Render(c.Params("name"), fiber.Map{
|
return c.Render(c.Params("name"), fiber.Map{
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ type Login struct {
|
||||||
|
|
||||||
type User struct {
|
type User struct {
|
||||||
Username string `db:"username" validate:"required"`
|
Username string `db:"username" validate:"required"`
|
||||||
Email string `db:"email" validate:"required email"`
|
Email string `db:"email" validate:"required,email"`
|
||||||
Password string `db:"password" validate:"required"`
|
Password string `db:"password" validate:"required"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue