Added authentication middleware

This commit is contained in:
2025-02-11 23:46:25 +11:00
parent 97aabcf06f
commit 732f8510ae
12 changed files with 208 additions and 21 deletions

View File

@@ -1,11 +1,18 @@
package jwt
import "github.com/google/uuid"
import (
"database/sql"
"projectreshoot/db"
"github.com/google/uuid"
"github.com/pkg/errors"
)
type Token interface {
GetJTI() uuid.UUID
GetEXP() int64
GetScope() string
GetUser(conn *sql.DB) (*db.User, error)
}
// Access token
@@ -31,6 +38,21 @@ type RefreshToken struct {
Scope string // Should be "refresh"
}
func (a AccessToken) GetUser(conn *sql.DB) (*db.User, error) {
user, err := db.GetUserFromID(conn, a.SUB)
if err != nil {
return nil, errors.Wrap(err, "db.GetUserFromID")
}
return &user, nil
}
func (r RefreshToken) GetUser(conn *sql.DB) (*db.User, error) {
user, err := db.GetUserFromID(conn, r.SUB)
if err != nil {
return nil, errors.Wrap(err, "db.GetUserFromID")
}
return &user, nil
}
func (a AccessToken) GetJTI() uuid.UUID {
return a.JTI
}