diff --git a/cmd/example-app/main.go b/cmd/example-app/main.go index a188dcccb05bca3f8b306714e9c24e7df50c0c88..ffa21c29ecb7a5dfcc1343850af3952690b1a048 100644 --- a/cmd/example-app/main.go +++ b/cmd/example-app/main.go @@ -241,12 +241,15 @@ func (a *app) handleLogin(w http.ResponseWriter, r *http.Request) { authCodeURL := "" scopes = append(scopes, "openid", "profile", "email") - if a.offlineAsScope { + if r.FormValue("offline_acecss") != "yes" { + authCodeURL = a.oauth2Config(scopes).AuthCodeURL(exampleAppState) + } else if a.offlineAsScope { scopes = append(scopes, "offline_access") authCodeURL = a.oauth2Config(scopes).AuthCodeURL(exampleAppState) } else { authCodeURL = a.oauth2Config(scopes).AuthCodeURL(exampleAppState, oauth2.AccessTypeOffline) } + http.Redirect(w, r, authCodeURL, http.StatusSeeOther) } diff --git a/cmd/example-app/templates.go b/cmd/example-app/templates.go index 661425401e79626a3bd4e15903e9ddff5ca3f7f5..c0f9dfbd84d262990a3d05514b432e1039618588 100644 --- a/cmd/example-app/templates.go +++ b/cmd/example-app/templates.go @@ -14,6 +14,9 @@ var indexTmpl = template.Must(template.New("index.html").Parse(`<html> </p> <p> Extra scopes:<input type="text" name="extra_scopes" placeholder="list of scopes"> + </p> + <p> + Request offline access:<input type="checkbox" name="offline_access" value="yes" checked> </p> <input type="submit" value="Login"> </form>