diff options
Diffstat (limited to 'src/scm/webid-oidc/token-endpoint.scm')
-rw-r--r-- | src/scm/webid-oidc/token-endpoint.scm | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/src/scm/webid-oidc/token-endpoint.scm b/src/scm/webid-oidc/token-endpoint.scm index 95681bb..5a05945 100644 --- a/src/scm/webid-oidc/token-endpoint.scm +++ b/src/scm/webid-oidc/token-endpoint.scm @@ -30,6 +30,7 @@ #:use-module (web uri) #:use-module (ice-9 optargs) #:use-module (ice-9 receive) + #:use-module (ice-9 control) #:use-module (srfi srfi-19) #:use-module (rnrs bytevectors)) @@ -61,15 +62,19 @@ (else (raise-exception err)))) (throw err))) - (with-exception-handler - (lambda (error) - (values - (build-response - #:code 400 - #:reason-phrase (string-append "Bad Request: " (error->str error))) - (error->str error))) - thunk - #:unwind? #t)) + (call/ec + (lambda (return) + (with-exception-handler + (lambda (error) + (return + (build-response + #:code 400 + #:reason-phrase (string-append "Bad Request: " (error->str error))) + (error->str error) + #f + error)) + thunk + #:unwind? #t)))) (define*-public (make-token-endpoint token-endpoint-uri iss alg jwk validity jti-list #:key @@ -181,4 +186,6 @@ (access_token . ,access-token) (token_type . "DPoP") (expires_in . ,validity) - (refresh_token . ,refresh-token))))))))))))) + (refresh_token . ,refresh-token))) + client-id + #f)))))))))) |