forked from OrgGo/Tasks
added error handling in session view
This commit is contained in:
parent
45000d7a8e
commit
eb1bf99924
|
@ -8,31 +8,37 @@ import (
|
||||||
|
|
||||||
//LogoutFunc Implements the logout functionality. WIll delete the session information from the cookie store
|
//LogoutFunc Implements the logout functionality. WIll delete the session information from the cookie store
|
||||||
func LogoutFunc(w http.ResponseWriter, r *http.Request) {
|
func LogoutFunc(w http.ResponseWriter, r *http.Request) {
|
||||||
session, _ := sessions.Store.Get(r, "session")
|
session, err := sessions.Store.Get(r, "session")
|
||||||
|
if err == nil { //If there is no error, then remove session
|
||||||
if session.Values["loggedin"] != "false" {
|
if session.Values["loggedin"] != "false" {
|
||||||
session.Values["loggedin"] = "false"
|
session.Values["loggedin"] = "false"
|
||||||
session.Save(r, w)
|
session.Save(r, w)
|
||||||
http.Redirect(w, r, "/login", 302)
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
http.Redirect(w, r, "/login", 302)
|
}
|
||||||
|
http.Redirect(w, r, "/login", 302) //redirect to login irrespective of error or not
|
||||||
}
|
}
|
||||||
|
|
||||||
//LoginFunc implements the login functionality, will add a cookie to the cookie store for managing authentication
|
//LoginFunc implements the login functionality, will add a cookie to the cookie store for managing authentication
|
||||||
func LoginFunc(w http.ResponseWriter, r *http.Request) {
|
func LoginFunc(w http.ResponseWriter, r *http.Request) {
|
||||||
session, _ := sessions.Store.Get(r, "session")
|
session, err := sessions.Store.Get(r, "session")
|
||||||
|
|
||||||
if r.Method == "POST" && r.FormValue("password") == "secret" && r.FormValue("username") == "user" {
|
if err != nil {
|
||||||
|
loginTemplate.Execute(w, nil) // in case of error during fetching session info, execute login template
|
||||||
|
} else {
|
||||||
|
isLoggedIn := session.Values["loggedin"]
|
||||||
|
if isLoggedIn != "true" {
|
||||||
|
if r.Method == "POST" {
|
||||||
|
if r.FormValue("password") == "secret" && r.FormValue("username") == "user" {
|
||||||
session.Values["loggedin"] = "true"
|
session.Values["loggedin"] = "true"
|
||||||
session.Save(r, w)
|
session.Save(r, w)
|
||||||
http.Redirect(w, r, "/", 302)
|
http.Redirect(w, r, "/", 302)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
} else if r.Method == "GET" {
|
||||||
if session.Values["loggedin"] == "true" {
|
|
||||||
http.Redirect(w, r, "/", 302)
|
|
||||||
} else {
|
|
||||||
loginTemplate.Execute(w, nil)
|
loginTemplate.Execute(w, nil)
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
http.Redirect(w, r, "/", 302)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue