aboutsummaryrefslogtreecommitdiff
path: root/auth/config.go
diff options
context:
space:
mode:
Diffstat (limited to 'auth/config.go')
-rw-r--r--auth/config.go34
1 files changed, 34 insertions, 0 deletions
diff --git a/auth/config.go b/auth/config.go
new file mode 100644
index 0000000..6a55839
--- /dev/null
+++ b/auth/config.go
@@ -0,0 +1,34 @@
+package auth
+
+import (
+ "encoding/hex"
+ "errors"
+ "os"
+
+ "github.com/martinlehoux/kagamigo/core"
+ "golang.org/x/exp/slog"
+)
+
+var (
+ ErrCookieBadLength = errors.New("cookie secret must be 32 bytes")
+)
+
+type AuthConfig struct {
+ Domain string
+ CookieSecret []byte
+}
+
+func LoadCookieSecret(cookieSecretString string) []byte {
+ cookiesSecret, err := hex.DecodeString(cookieSecretString)
+ if err != nil {
+ err = core.Wrap(err, "error decoding cookie secret")
+ slog.Error(err.Error())
+ os.Exit(1)
+ }
+ if len(cookiesSecret) != 32 {
+ slog.Error(ErrCookieBadLength.Error())
+ os.Exit(1)
+ }
+ slog.Info("cookie secret loaded")
+ return cookiesSecret
+}