diff options
Diffstat (limited to 'src/scm/webid-oidc/oidc-id-token.scm')
-rw-r--r-- | src/scm/webid-oidc/oidc-id-token.scm | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/scm/webid-oidc/oidc-id-token.scm b/src/scm/webid-oidc/oidc-id-token.scm index 19e22d7..17a3299 100644 --- a/src/scm/webid-oidc/oidc-id-token.scm +++ b/src/scm/webid-oidc/oidc-id-token.scm @@ -20,6 +20,7 @@ #:use-module (webid-oidc jwk) #:use-module (webid-oidc jti) #:use-module (webid-oidc web-i18n) + #:use-module (webid-oidc serializable) #:use-module ((webid-oidc stubs) #:prefix stubs:) #:use-module ((webid-oidc parameters) #:prefix p:) #:use-module (web uri) @@ -55,9 +56,18 @@ invalid-id-token?) (define-class <id-token> (<single-use-token> <oidc-token>) - (webid #:init-keyword #:webid #:accessor webid) + (webid #:init-keyword #:webid #:accessor webid #:->sxml uri->string) (sub #:init-keyword #:sub #:accessor sub) - (aud #:init-keyword #:aud #:accessor aud)) + (aud #:init-keyword #:aud #:accessor aud #:->sxml uri->string) + #:metaclass <plugin-class> + #:module-name '(webid-oidc oidc-id-token)) + +(define-method (equal? (x <id-token>) (y <id-token>)) + (and (equal? (alg x) (alg y)) + (equal? (iat x) (iat y)) + (equal? ((@ (webid-oidc jws) exp) x) ((@ (webid-oidc jws) exp) y)) + (equal? (nonce x) (nonce y)) + (equal? (iss x) (iss y)))) (define-method (initialize (token <id-token>) initargs) (with-exception-handler |