From 926d8e643e9ffb7d5f5608793d35381742675073 Mon Sep 17 00:00:00 2001 From: William Carroll Date: Sat, 8 Aug 2020 11:18:49 +0100 Subject: [PATCH] Update jwtIsValid API to return IO Bool I need IO for: - Getting the current time to validate `exp` - Making an HTTP request to Google's token verifier endpoint --- .../sandbox/learnpianochords/src/server/GoogleSignIn.hs | 4 ++-- website/sandbox/learnpianochords/src/server/Spec.hs | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/website/sandbox/learnpianochords/src/server/GoogleSignIn.hs b/website/sandbox/learnpianochords/src/server/GoogleSignIn.hs index 43fd79fbd..1ea252eea 100644 --- a/website/sandbox/learnpianochords/src/server/GoogleSignIn.hs +++ b/website/sandbox/learnpianochords/src/server/GoogleSignIn.hs @@ -10,5 +10,5 @@ import Web.JWT -- * The value of `iss` matches is "accounts.google.com" or -- "https://accounts.google.com" -- * The `exp` time has not passed -jwtIsValid :: JWT UnverifiedJWT -> Bool -jwtIsValid jwt = False +jwtIsValid :: JWT UnverifiedJWT -> IO Bool +jwtIsValid jwt = pure False diff --git a/website/sandbox/learnpianochords/src/server/Spec.hs b/website/sandbox/learnpianochords/src/server/Spec.hs index 69add5261..1f9b9bb4b 100644 --- a/website/sandbox/learnpianochords/src/server/Spec.hs +++ b/website/sandbox/learnpianochords/src/server/Spec.hs @@ -18,12 +18,12 @@ main = hspec $ do let mJWT = F.defaultJWTFields { F.overwriteSigner = hmacSecret "wrong" } |> F.googleJWT case mJWT of - Nothing -> True == False - Just jwt -> GoogleSignIn.jwtIsValid jwt == False + Nothing -> True `shouldBe` False + Just jwt -> GoogleSignIn.jwtIsValid jwt `shouldReturn` False it "returns false when the aud field doesn't match my client ID" $ do let mJWT = F.defaultJWTFields { F.overwriteAud = stringOrURI "wrong" } |> F.googleJWT case mJWT of - Nothing -> True == False - Just jwt -> GoogleSignIn.jwtIsValid jwt == False + Nothing -> True `shouldBe` False + Just jwt -> GoogleSignIn.jwtIsValid jwt `shouldReturn` False