aboutsummaryrefslogtreecommitdiff
path: root/lib/paseto/v2/public_mode.go
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2026-03-30 03:49:19 +0700
committerShulhan <ms@kilabit.info>2026-03-30 06:35:53 +0700
commite931ffed0aada7427d7016ce681b2d038b668ba3 (patch)
treeef3efc06d880698cd0cecf80f3792bfc69db7c68 /lib/paseto/v2/public_mode.go
parent5335f8d5e049866c904b506e28a7e48c8c787024 (diff)
downloadpakakeh.go-e931ffed0aada7427d7016ce681b2d038b668ba3.tar.xz
lib/paseto: store the time as Unix epoch inside Payload
Previously, we use time.Time to store the value for ExpiredAt, NotBefore, and IssuedAt. Even thought this is allowed (see RFC 7519 section 2, NumericDate) but it is not a standard practices. This changes them to store Unix epoch with int64.
Diffstat (limited to 'lib/paseto/v2/public_mode.go')
-rw-r--r--lib/paseto/v2/public_mode.go10
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/paseto/v2/public_mode.go b/lib/paseto/v2/public_mode.go
index d322a0b1..c10a7a42 100644
--- a/lib/paseto/v2/public_mode.go
+++ b/lib/paseto/v2/public_mode.go
@@ -106,15 +106,15 @@ func (auth *PublicMode) RemovePeer(id string) {
func (auth *PublicMode) Pack(audience, subject string, data []byte, footer map[string]any) (
token string, err error,
) {
- now := time.Now().Round(time.Second)
- expiredAt := now.Add(paseto.DefaultTTL)
+ now := time.Now().UTC().Unix()
+ expiredAt := now + paseto.DefaultTTL
jsonToken := paseto.Payload{
Issuer: auth.our.ID,
Subject: subject,
Audience: audience,
- IssuedAt: &now,
- NotBefore: &now,
- ExpiredAt: &expiredAt,
+ IssuedAt: now,
+ NotBefore: now,
+ ExpiredAt: expiredAt,
Data: base64.StdEncoding.EncodeToString(data),
}