From dfe33094328adfe3aaf1708afbc8df1d62fbecac Mon Sep 17 00:00:00 2001 From: Bart Akeley Date: Sat, 27 Jan 2018 17:52:23 -0600 Subject: [PATCH] cache authenticated tokens for faster response --- src/aretherecookies/auth.clj | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/aretherecookies/auth.clj b/src/aretherecookies/auth.clj index de28ead..895e2c9 100644 --- a/src/aretherecookies/auth.clj +++ b/src/aretherecookies/auth.clj @@ -2,14 +2,18 @@ (:require [buddy.auth.backends :as backends] [clj-http.client :as client])) +(def tokens (atom {})) + (defn facebook-me [token] (client/get (str "https://graph.facebook.com/me?access_token=" token) {:accept :json})) (defn facebook-me-ok [token] - (= (:status (facebook-me token)) 200)) + (= 200 (:status (facebook-me token))) (swap! tokens assoc (keyword token) true)) (defn facebook-token-auth [_ token] - (if (facebook-me-ok token) token)) + (cond + (get @tokens (keyword token)) token + (facebook-me-ok token) token)) (def auth-backend (backends/token {:token-name "facebook-token" :authfn facebook-token-auth})) \ No newline at end of file