Skip to content

Commit 36dedb0

Browse files
committed
add "client-authorized-p" method. some minor changes
1 parent 848e456 commit 36dedb0

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

gapi.lisp

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
(in-package #:gapi)
22

3-
(defparameter *token-expiry-length* 3600)
3+
(defparameter *jwt-token-expiry-length* 3600)
44

55
(define-condition gapi-error (error)
66
((code :initarg :code
@@ -46,7 +46,7 @@
4646
((asn1:rsa-private-key :private-exponent d :modulus n)
4747
(ironclad:make-private-key :rsa :d d :n n)))))
4848

49-
(defun %generate-jwt (private-key client-email token-uri scopes &key (expiry-length *token-expiry-length*))
49+
(defun %generate-jwt (private-key client-email token-uri scopes expiry-length)
5050
(jose:encode :rs256 private-key `(("iss" . ,client-email)
5151
("iat" . ,(get-unix-time))
5252
("exp" . ,(+ (get-unix-time) expiry-length))
@@ -69,13 +69,14 @@
6969
:token-uri (getf acc :|token_uri|)
7070
:scopes scopes)))
7171

72-
(defmethod generate-jwt ((client client))
72+
(defmethod generate-jwt ((client client) &key (expiry-length *jwt-token-expiry-length*))
7373
(with-slots (private-key client-email token-uri scopes) client
74-
(%generate-jwt private-key client-email token-uri scopes)))
74+
(%generate-jwt private-key client-email token-uri scopes expiry-length)))
7575

7676

7777
(defmethod auth ((client client))
78-
(let ((response (%auth (client-token-uri client) (generate-jwt client))))
78+
(let ((response (%auth (client-token-uri client)
79+
(generate-jwt client))))
7980
(setf (client-access-token client) (getf response :|access_token|)
8081
(client-access-token-expires-at client) (+ (get-universal-time)
8182
(getf response :|expires_in|)))))
@@ -84,10 +85,12 @@
8485
(> (get-universal-time)
8586
(client-access-token-expires-at client)))
8687

88+
(defmethod client-authorized-p ((client client))
89+
(not (null (client-access-token client))))
8790

8891
(defmethod request ((client client) url &key (method :GET) payload)
8992
(assert (client-access-token client)
90-
nil "Client is not authenticated, use (gapi:auth client)")
93+
nil "Client is not authorized, use (gapi:auth client)")
9194
(handler-case
9295
(jojo:parse
9396
(dex:request url

package.lisp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
(:import-from #:local-time
44
#:timestamp-to-unix
55
#:now)
6-
(:export #:*token-expiry-length*
7-
#:client
6+
(:export #:client
87
#:client-project-id
98
#:client-client-email
109
#:client-scopes

0 commit comments

Comments
 (0)