summaryrefslogtreecommitdiff
path: root/db/db.go
diff options
context:
space:
mode:
Diffstat (limited to 'db/db.go')
-rw-r--r--db/db.go12
1 files changed, 6 insertions, 6 deletions
diff --git a/db/db.go b/db/db.go
index e011334..acb4437 100644
--- a/db/db.go
+++ b/db/db.go
@@ -15,7 +15,7 @@ import (
)
const (
- tokenLength = 32 // bytes → 64 hex chars
+ tokenLength = 32
accessTokenTTL = 24 * time.Hour
)
@@ -82,7 +82,7 @@ func isDupKeyError(err error) bool {
// --- queries ---
-// CreateAccount inserts a new row with hashed credentials and fresh tokens.
+// CreateAccount inserts a new row with plaintext password and fresh tokens.
func (d *DB) CreateAccount(ctx context.Context, username, plaintextPW string) (*Account, error) {
rt, err := randomHex(tokenLength)
if err != nil {
@@ -95,7 +95,7 @@ func (d *DB) CreateAccount(ctx context.Context, username, plaintextPW string) (*
res, err := d.conn.ExecContext(ctx,
`INSERT INTO account (username, password, refresh_token, access_token, access_token_created)
- VALUES (?, SHA2(?, 256), SHA2(?, 256), SHA2(?, 256), NOW())`,
+ VALUES (?, ?, SHA2(?, 256), SHA2(?, 256), NOW())`,
username, plaintextPW, rt, at,
)
if err != nil {
@@ -123,10 +123,10 @@ func (d *DB) CreateAccount(ctx context.Context, username, plaintextPW string) (*
// Authenticate verifies plaintext credentials and returns fresh tokens.
func (d *DB) Authenticate(ctx context.Context, username, plaintextPW string) (*Account, error) {
- var storedHash string
+ var storedPW string
err := d.conn.QueryRowContext(ctx,
`SELECT password FROM account WHERE username = ?`, username,
- ).Scan(&storedHash)
+ ).Scan(&storedPW)
if err != nil {
if errors.Is(err, sql.ErrNoRows) {
return nil, errors.New("invalid credentials")
@@ -134,7 +134,7 @@ func (d *DB) Authenticate(ctx context.Context, username, plaintextPW string) (*A
return nil, fmt.Errorf("query user: %w", err)
}
- if storedHash != sha256hex(plaintextPW) {
+ if storedPW != plaintextPW {
return nil, errors.New("invalid credentials")
}