aboutsummaryrefslogtreecommitdiff
path: root/src/user/routes.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/user/routes.go')
-rw-r--r--src/user/routes.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/user/routes.go b/src/user/routes.go
index 7cbd3fb..5399418 100644
--- a/src/user/routes.go
+++ b/src/user/routes.go
@@ -92,10 +92,26 @@ func LoginForm(s *server.Server) http.HandlerFunc {
func Login(s *server.Server) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
+ r.ParseForm()
// look up the user from the db
+ user, err := models.Users(models.UserWhere.Username.EQ(r.PostFormValue("username"))).One(r.Context(), s.Db.ToSqlDb())
+ if err != nil {
+ log.Fatal(err)
+ }
+
// hash the form secret
// compare form hash to db hash
+ valid, err := compareSecretToHash(r.PostFormValue("secret"), user.Secret)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if !valid {
+ log.Fatal("Incorrect login credentials TODO resolve with compareSecretToHash err")
+ }
+
// login or dont
+ sessions.NewSession(w, sessions.SessionValues{"uid": user.ID, "username": user.Username})
+ http.Redirect(w, r, "/u/me", http.StatusSeeOther)
}
}