Moved config and finished JWT module

This commit is contained in:
2025-02-10 22:10:03 +11:00
parent 04049bb73a
commit e73805a02d
13 changed files with 237 additions and 69 deletions

31
jwt/revoke.go Normal file
View File

@@ -0,0 +1,31 @@
package jwt
import (
"database/sql"
"github.com/pkg/errors"
)
// Revoke a token by adding it to the database
func RevokeToken(conn *sql.DB, t Token) error {
jti := t.GetJTI()
exp := t.GetEXP()
query := `INSERT INTO jwtblacklist (jti, exp) VALUES (?, ?)`
_, err := conn.Exec(query, jti, exp)
if err != nil {
return errors.Wrap(err, "conn.Exec")
}
return nil
}
// Check if a token has been revoked
func CheckRevoked(conn *sql.DB, t Token) (bool, error) {
jti := t.GetJTI()
query := `SELECT 1 FROM jwtblacklist WHERE jti = ? LIMIT 1`
rows, err := conn.Query(query, jti)
if err != nil {
return false, errors.Wrap(err, "conn.Exec")
}
revoked := rows.Next()
return revoked, nil
}