diff --git a/cmd/example-app/main.go b/cmd/example-app/main.go index d88b6838150c21d3c5e0548262f0bba72a785e6e..21b025d2a39a56537d919d65f55c8aa1279d7bb8 100644 --- a/cmd/example-app/main.go +++ b/cmd/example-app/main.go @@ -310,11 +310,18 @@ func (a *app) handleCallback(w http.ResponseWriter, r *http.Request) { http.Error(w, fmt.Sprintf("Failed to verify ID token: %v", err), http.StatusInternalServerError) return } + + accessToken, ok := token.Extra("access_token").(string) + if !ok { + http.Error(w, "no access_token in token response", http.StatusInternalServerError) + return + } + var claims json.RawMessage idToken.Claims(&claims) buff := new(bytes.Buffer) json.Indent(buff, []byte(claims), "", " ") - renderToken(w, a.redirectURI, rawIDToken, token.RefreshToken, buff.Bytes()) + renderToken(w, a.redirectURI, rawIDToken, accessToken, token.RefreshToken, buff.Bytes()) } diff --git a/cmd/example-app/templates.go b/cmd/example-app/templates.go index a870d0f0a9d699d7dfef20fea0a71fea66c4e538..3a4b5bb288705d454168e11fae6617afb3df1e14 100644 --- a/cmd/example-app/templates.go +++ b/cmd/example-app/templates.go @@ -29,6 +29,7 @@ func renderIndex(w http.ResponseWriter) { type tokenTmplData struct { IDToken string + AccessToken string RefreshToken string RedirectURL string Claims string @@ -48,7 +49,8 @@ pre { </style> </head> <body> - <p> Token: <pre><code>{{ .IDToken }}</code></pre></p> + <p> ID Token: <pre><code>{{ .IDToken }}</code></pre></p> + <p> Access Token: <pre><code>{{ .AccessToken }}</code></pre></p> <p> Claims: <pre><code>{{ .Claims }}</code></pre></p> {{ if .RefreshToken }} <p> Refresh Token: <pre><code>{{ .RefreshToken }}</code></pre></p> @@ -61,9 +63,10 @@ pre { </html> `)) -func renderToken(w http.ResponseWriter, redirectURL, idToken, refreshToken string, claims []byte) { +func renderToken(w http.ResponseWriter, redirectURL, idToken, accessToken, refreshToken string, claims []byte) { renderTemplate(w, tokenTmpl, tokenTmplData{ IDToken: idToken, + AccessToken: accessToken, RefreshToken: refreshToken, RedirectURL: redirectURL, Claims: string(claims),