package sihl
The modular functional web framework
Install
Dune Dependency
Authors
Maintainers
Sources
sihl-0.1.4.tbz
sha256=49fe887d05083b37523cd6e7ca35239822c561fe7109dd383c30aeb4259a7b98
sha512=4135ad42a75fb9adc3e853a466b696d9ee6d7a9d8acf0cee9fd5f5485679a517f524ce704e2d153df4a7c4f1d14df9f94ab2a8fbe5b36e744b505daab1d40f3d
doc/src/sihl.utils/utils_jwt.ml.html
Source file utils_jwt.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
open Base type algorithm = Jwto.algorithm = HS256 | HS512 | Unknown type t = Jwto.t type payload = (string * string) list let empty = [] let add_claim ~key ~value payload = Base.List.cons (key, value) payload let set_expires_in ~now duration payload = let span = Utils_time.duration_to_span duration in let epoch_s = Ptime.add_span now span |> Option.map ~f:Ptime.to_float_s |> Option.map ~f:Float.to_string in match epoch_s with | Some epoch_s -> add_claim ~key:"exp" ~value:epoch_s payload | None -> payload let encode algorithm ~secret payload = Jwto.encode algorithm secret payload let decode ~secret token = Jwto.decode_and_verify secret token let get_claim ~key token = token |> Jwto.get_payload |> Jwto.get_claim key let is_expired ~now ?(claim = "exp") token = token |> get_claim ~key:claim |> Option.bind ~f:(fun exp -> Option.try_with (fun () -> Float.of_string exp)) |> Option.bind ~f:Ptime.of_float_s |> Option.map ~f:(fun exp -> Ptime.is_earlier exp ~than:now) |> Option.value ~default:false let pp = Jwto.pp let eq = Jwto.eq module Jwto = Jwto
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>