diff options
author | William Carroll <wpcarro@gmail.com> | 2020-08-08T13·47+0100 |
---|---|---|
committer | William Carroll <wpcarro@gmail.com> | 2020-08-08T13·47+0100 |
commit | 8a7a3b29a9413d634b8f8a71119cc54a6132df41 (patch) | |
tree | fc32f99e9f1a9a7b9ef52f364718c56d33ccedcf /website/sandbox/learnpianochords/src/server/Fixtures.hs | |
parent | f1883b279037375c66cf683b7392652624381c59 (diff) |
Add tests for "exp" field of the JWT
Assert that the exp field of the JWT is "fresh".
Diffstat (limited to 'website/sandbox/learnpianochords/src/server/Fixtures.hs')
-rw-r--r-- | website/sandbox/learnpianochords/src/server/Fixtures.hs | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/website/sandbox/learnpianochords/src/server/Fixtures.hs b/website/sandbox/learnpianochords/src/server/Fixtures.hs index ea7e0301ec4f..169e29632bd3 100644 --- a/website/sandbox/learnpianochords/src/server/Fixtures.hs +++ b/website/sandbox/learnpianochords/src/server/Fixtures.hs @@ -9,6 +9,8 @@ import Utils import qualified Data.Map as Map import qualified GoogleSignIn import qualified TestUtils +import qualified Data.Time.Clock.POSIX as POSIX +import qualified System.IO.Unsafe as Unsafe -------------------------------------------------------------------------------- -- | These are the JWT fields that I'd like to overwrite in the `googleJWT` @@ -17,15 +19,23 @@ data JWTFields = JWTFields { overwriteSigner :: Signer , overwriteAuds :: [StringOrURI] , overwriteIss :: StringOrURI + , overwriteExp :: NumericDate } defaultJWTFields :: JWTFields -defaultJWTFields = JWTFields - { overwriteSigner = hmacSecret "secret" - , overwriteAuds = ["771151720060-buofllhed98fgt0j22locma05e7rpngl.apps.googleusercontent.com"] - |> fmap TestUtils.unsafeStringOrURI - , overwriteIss = TestUtils.unsafeStringOrURI "accounts.google.com" - } +defaultJWTFields = do + let tenDaysFromToday = POSIX.getPOSIXTime + |> Unsafe.unsafePerformIO + |> (\x -> x * 60 * 60 * 25 * 10) + |> numericDate + |> TestUtils.unsafeJust + JWTFields + { overwriteSigner = hmacSecret "secret" + , overwriteAuds = ["771151720060-buofllhed98fgt0j22locma05e7rpngl.apps.googleusercontent.com"] + |> fmap TestUtils.unsafeStringOrURI + , overwriteIss = TestUtils.unsafeStringOrURI "accounts.google.com" + , overwriteExp = tenDaysFromToday + } googleJWT :: JWTFields -> GoogleSignIn.EncodedJWT googleJWT JWTFields{..} = @@ -49,7 +59,7 @@ googleJWT JWTFields{..} = , sub = stringOrURI "114079822315085727057" , aud = overwriteAuds |> Right |> Just -- TODO: Replace date creation with a human-readable date constructor. - , Web.JWT.exp = numericDate 1596756453 + , Web.JWT.exp = Just overwriteExp , nbf = Nothing -- TODO: Replace date creation with a human-readable date constructor. , iat = numericDate 1596752853 |