summaryrefslogtreecommitdiff
path: root/app/controllers/sessions/controller.go
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/sessions/controller.go')
-rw-r--r--app/controllers/sessions/controller.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/app/controllers/sessions/controller.go b/app/controllers/sessions/controller.go
index e8409a3..bf7d813 100644
--- a/app/controllers/sessions/controller.go
+++ b/app/controllers/sessions/controller.go
@@ -24,6 +24,7 @@ func New(cfg *oidc.OpenID, http *http.Client) *Controller {
func (c *Controller) MountTo(mux *http.ServeMux) {
mux.HandleFunc("GET /session/new", c.New)
+ mux.HandleFunc("GET /session", c.Show)
mux.HandleFunc("GET /session/callback", c.Create)
mux.HandleFunc("POST /session/destroy", c.Destroy)
}
@@ -39,6 +40,25 @@ func (c *Controller) New(w http.ResponseWriter, r *http.Request) {
c.redirectTo(w, r, url)
}
+func (c *Controller) Show(w http.ResponseWriter, r *http.Request) {
+ cookie, err := r.Cookie(cfg.IDTokenCookie)
+ if err != nil {
+ pls.LogError(r.Context(), err)
+ w.WriteHeader(http.StatusNotFound)
+ return
+ }
+
+ token, err := c.svc.JWTBody(r.Context(), oidc.RawToken(cookie.Value))
+ if err != nil {
+ pls.LogError(r.Context(), err)
+ w.WriteHeader(http.StatusNotFound)
+ return
+ }
+
+ w.WriteHeader(http.StatusOK)
+ w.Write(token)
+}
+
/*
This is the callback endpoint from the OIDC Provider: