diff options
| author | mo khan <mo@mokhan.ca> | 2025-05-11 15:42:52 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2025-05-11 21:21:38 -0600 |
| commit | 2122cfe75bb89f0c0713859009ba81d784924d99 (patch) | |
| tree | 6253b0bf47abdc6ad302535a66efae7ec8df61b4 /app/controllers/sessions/controller.go | |
| parent | faeeaca326963b9687c3730b90b29fd771393352 (diff) | |
feat: add endpoint to reflect JWT body
Diffstat (limited to 'app/controllers/sessions/controller.go')
| -rw-r--r-- | app/controllers/sessions/controller.go | 20 |
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: |
