...
1
21
22 package fosite
23
24 import (
25 "context"
26
27 "github.com/ory/x/errorsx"
28
29 "github.com/pkg/errors"
30 )
31
32 func (f *Fosite) NewAccessResponse(ctx context.Context, requester AccessRequester) (AccessResponder, error) {
33 var err error
34 var tk TokenEndpointHandler
35
36 response := NewAccessResponse()
37
38 ctx = context.WithValue(ctx, AccessRequestContextKey, requester)
39 ctx = context.WithValue(ctx, AccessResponseContextKey, response)
40
41 for _, tk = range f.TokenEndpointHandlers {
42 if err = tk.PopulateTokenEndpointResponse(ctx, requester, response); err == nil {
43
44 } else if errors.Is(err, ErrUnknownRequest) {
45
46 } else if err != nil {
47 return nil, err
48 }
49 }
50
51 if response.GetAccessToken() == "" || response.GetTokenType() == "" {
52 return nil, errorsx.WithStack(ErrServerError.WithHint("An internal server occurred while trying to complete the request.").WithDebug("Access token or token type not set by TokenEndpointHandlers.").WithLocalizer(f.MessageCatalog, getLangFromRequester(requester)))
53 }
54
55 return response, nil
56 }
57
View as plain text