summaryrefslogtreecommitdiff
path: root/src/scm/webid-oidc/token-endpoint.scm
diff options
context:
space:
mode:
Diffstat (limited to 'src/scm/webid-oidc/token-endpoint.scm')
-rw-r--r--src/scm/webid-oidc/token-endpoint.scm27
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))))))))))