added prefix scan and fixed logout issue

This commit is contained in:
ston1th 2019-07-06 11:31:12 +02:00
commit 8143e484cd
12 changed files with 99 additions and 77 deletions

View file

@ -26,10 +26,12 @@ func jwtHandler(h ctxHandler) ctxHandler {
t, err := jwt.DecodeToken(c.Value)
if err != nil {
ctx.LogSetCookie("DecodeToken:", err)
ctx.Redirect(core.IndexURI, http.StatusFound)
return
}
if err = ctx.Srv.JWT.Verify(t); err != nil {
ctx.LogSetCookie("VerifyToken:", err)
ctx.Redirect(core.IndexURI, http.StatusFound)
return
}
if t.Claims.GetString(totpClaim) != "" {
@ -156,7 +158,7 @@ func loginHandler(ctx *Context) {
}
u, err := ctx.Srv.DB.Login(data.User, password)
if err != nil {
log.Println("login:", data.User, err)
log.Printf("login: %s from: %s %s", data.User, ctx.Forwarded(), err)
ctx.Error("bad username or password")
return
}
@ -197,8 +199,10 @@ func loginTotpHandler(ctx *Context) {
ctx.Error("empty pin")
return
}
u, err := ctx.Srv.DB.Totp(ctx.Totp(), pin)
user := ctx.Totp()
u, err := ctx.Srv.DB.Totp(user, pin)
if err != nil {
log.Printf("totp: %s from: %s %s", user, ctx.Forwarded(), err)
ctx.Error(err)
return
}
@ -875,12 +879,20 @@ func userDelHandler(ctx *Context) {
}
func logoutHandler(ctx *Context) {
var totp string
user := ctx.User()
if user == "" {
user = ctx.Totp() + " (totp)"
user = ctx.Totp()
if user != "" {
totp = " (totp)"
}
}
log.Println("logout:", user)
ctx.Srv.JWT.Invalidate(&ctx.Token)
if user != "" {
ctx.Srv.JWT.Invalidate(&ctx.Token)
} else {
user = empty
}
log.Printf("logout: %s%s", user, totp)
ctx.SetCookie(nil, 0)
ctx.Redirect(core.IndexURI, http.StatusFound)
}