auth-ui: redirect user directly to consent page if already logged in
Change-Id: I4ea575acbeb493bf2d4b4aca424043922ea07499
diff --git a/core/auth/ui/main.go b/core/auth/ui/main.go
index 3de264c..735a685 100644
--- a/core/auth/ui/main.go
+++ b/core/auth/ui/main.go
@@ -225,19 +225,26 @@
return
}
if challenge, ok := r.Form["login_challenge"]; ok {
+ username, err := getWhoAmIFromKratos(r.Cookies())
+ if err != nil && err != ErrNotLoggedIn {
+ http.Error(w, err.Error(), http.StatusInternalServerError)
+ return
+ }
+ if err == nil {
+ redirectTo, err := s.hydra.LoginAcceptChallenge(challenge[0], username)
+ if err != nil {
+ http.Error(w, err.Error(), http.StatusInternalServerError)
+ return
+ }
+ http.Redirect(w, r, redirectTo, http.StatusSeeOther)
+ return
+ }
// TODO(giolekva): encrypt
http.SetCookie(w, &http.Cookie{
Name: "login_challenge",
Value: challenge[0],
HttpOnly: true,
})
- } else {
- // http.SetCookie(w, &http.Cookie{
- // Name: "login_challenge",
- // Value: "",
- // Expires: time.Unix(0, 0),
- // HttpOnly: true,
- // })
}
returnTo := r.Form.Get("return_to")
flow, ok := r.Form["flow"]