From 1272151cb165831170834a2c34cc646c09a0b4c6 Mon Sep 17 00:00:00 2001 Message-Id: <1272151cb165831170834a2c34cc646c09a0b4c6.1638101267.git.avityazev@posteo.org> In-Reply-To: References: From: Aleksandr Vityazev Date: Sat, 27 Nov 2021 15:42:47 +0300 Subject: [PATCH 07/11] * oauth2 (oauth2--epoch-time): New function. --- oauth2.el | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/oauth2.el b/oauth2.el index 3dab614..4bb886e 100644 --- a/oauth2.el +++ b/oauth2.el @@ -112,6 +112,10 @@ Return the code provided by the service." (created-at "" :read-only t) (access-response "" :read-only t)) +(defun oauth2--epoch-time () + "Return seconds since the Epoch." + (time-convert (current-time) 'integer)) + (cl-defun oauth2-request-access (token-url client-id client-secret code &optional (redirect-uri "urn:ietf:wg:oauth:2.0:oob")) "Request OAuth access at TOKEN-URL. @@ -158,7 +162,8 @@ TOKEN should be obtained with `oauth2-request-access'." :access-token (cdr (assoc 'access_token response)) :refresh-token (cdr (assoc 'refresh_token response)) :expires-in (cdr (assoc 'expires_in response)) - :created-at (cdr (assoc 'created_at response)) + :created-at (let ((it (cdr (assoc 'created_at response)))) + (if it it (oauth2--epoch-time))) :token-url token-url :access-response response))) (when plstore @@ -201,7 +206,8 @@ Return an `oauth2-token' structure." :access-token (cdr (assoc 'access_token response)) :refresh-token (cdr (assoc 'refresh_token response)) :expires-in (cdr (assoc 'expires_in response)) - :created-at (cdr (assoc 'created_at response)) + :created-at (let ((it (cdr (assoc 'created_at response)))) + (if it it (oauth2--epoch-time))) :token-url token-url :access-response response))) @@ -230,7 +236,7 @@ Return an `oauth2-token' structure." (plist (cdr (plstore-get plstore id))) (expires (cdr (assoc 'expires_in (plist-get plist :access-response)))) (created (cdr (assoc 'created_at (plist-get plist :access-response)))) - (current-time (time-convert nil 'integer)) + (current-time (oauth2--epoch-time)) (token (make-oauth2-token :plstore plstore :plstore-id id :client-id client-id -- 2.34.0