Fix user authentication when backend is down

This commit is contained in:
Wim Brand
2019-03-28 11:25:35 +01:00
parent 52345de733
commit 1138fd0eea

View File

@@ -40,14 +40,20 @@ func (wc *WebController) newTemplateData(w http.ResponseWriter, r *http.Request)
t.PixelAPI = pixelapi.New(wc.conf.APIURLInternal, key) t.PixelAPI = pixelapi.New(wc.conf.APIURLInternal, key)
uinf, err := t.PixelAPI.UserInfo() uinf, err := t.PixelAPI.UserInfo()
if err != nil { if err != nil {
// This session key doesn't work, delete it // This session key doesn't work, or the backend is down, user
// cannot be authenticated
log.Debug("Session check for key '%s' failed: %s", key, err) log.Debug("Session check for key '%s' failed: %s", key, err)
if aerr, ok := err.(pixelapi.Error); ok && aerr.Value == "authentication_required" {
// This key is invalid, delete it
log.Debug("Deleting invalid API key")
http.SetCookie(w, &http.Cookie{ http.SetCookie(w, &http.Cookie{
Name: "pd_auth_key", Name: "pd_auth_key",
Value: "", Value: "",
Path: "/", Path: "/",
Expires: time.Unix(0, 0), Expires: time.Unix(0, 0),
}) })
}
return t return t
} }