func tokenEndpointHandler(t *testing.T, oauth2 fosite.OAuth2Provider) func(rw http.ResponseWriter, req *http.Request) { return func(rw http.ResponseWriter, req *http.Request) { req.ParseForm() ctx := fosite.NewContext() accessRequest, err := oauth2.NewAccessRequest(ctx, req, &fosite.DefaultSession{}) if err != nil { t.Logf("Access request failed because %s.", err.Error()) t.Logf("Request: %s.", accessRequest) t.Logf("Stack: %v.", err.(stackTracer).StackTrace()) oauth2.WriteAccessError(rw, accessRequest, err) return } if accessRequest.GetRequestedScopes().Has("fosite") { accessRequest.GrantScope("fosite") } response, err := oauth2.NewAccessResponse(ctx, req, accessRequest) if err != nil { t.Logf("Access request failed because %s.", err.Error()) t.Logf("Request: %s.", accessRequest) t.Logf("Stack: %v.", err.(stackTracer).StackTrace()) oauth2.WriteAccessError(rw, accessRequest, err) return } oauth2.WriteAccessResponse(rw, accessRequest, response) } }