20 lines
678 B
Clojure
20 lines
678 B
Clojure
(ns beherbergung.auth.jwt.defaults
|
|
(:require [beherbergung.auth.jwt.state :refer [secret]]
|
|
[buddy.sign.jwt]
|
|
[buddy.sign.util :refer [now]]))
|
|
|
|
(def default_validity:seconds (* 24 60 60)) ;; 1 Day
|
|
|
|
(defn sign
|
|
"Wrap around buddy.sign.jwt/sign, using the secret provided by mount and adds an expiration date."
|
|
([data]
|
|
(sign data default_validity:seconds))
|
|
([data validity]
|
|
(when (< (count secret) beherbergung.auth.jwt.state/secret_length:bytes)
|
|
(throw (Exception. "Secret too short")))
|
|
(buddy.sign.jwt/sign (assoc data :exp (+ (now) validity))
|
|
secret)))
|
|
|
|
(defn unsign [jwt]
|
|
(buddy.sign.jwt/unsign jwt secret))
|