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
|
||||
}
|
||||
|
||||
func SetUserPassword(password string, user *data.User) error {
|
||||
hashed, err := bcrypt.GenerateFromPassword([]byte(password), 12)
|
||||
if err == nil { return err }
|
||||
func SetUserPassword(user *data.User) error {
|
||||
hashed, err := bcrypt.GenerateFromPassword([]byte(user.Password), 12)
|
||||
if err != nil { return err }
|
||||
|
||||
user.Password = string(hashed)
|
||||
return nil
|
||||
|
|
|
@ -49,6 +49,23 @@ func GetApiStreamIdLinks(c *fiber.Ctx) error {
|
|||
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 {
|
||||
var user data.User
|
||||
|
||||
|
@ -84,6 +101,8 @@ func PostApiLink(c *fiber.Ctx) error {
|
|||
Values(link.StreamId, link.Url, link.Description).ToSql()
|
||||
|
||||
err = data.Insert(err, sql, args...)
|
||||
if(err != nil) { goto fail }
|
||||
|
||||
return c.Redirect("/live/")
|
||||
|
||||
fail:
|
||||
|
@ -99,6 +118,7 @@ func Setup(app *fiber.App) {
|
|||
app.Get("/api/stream/:id/links", GetApiStreamIdLinks)
|
||||
app.Post("/api/login", PostApiLogin)
|
||||
app.Post("/api/link", PostApiLink)
|
||||
app.Post("/api/register", PostApiRegister)
|
||||
|
||||
app.Get("/test/:name/", func (c *fiber.Ctx) error {
|
||||
return c.Render(c.Params("name"), fiber.Map{
|
||||
|
|
|
@ -7,7 +7,7 @@ type Login struct {
|
|||
|
||||
type User struct {
|
||||
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"`
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue