Fix double username in token

This commit is contained in:
nak 2026-03-18 06:45:11 +00:00
parent af9d0455f9
commit 6cba9f8f68

View file

@ -187,28 +187,23 @@ func sessionKey(username string) string {
const sessionTTL = 6 * time.Minute // token valid for 6 min; client refreshes every 5 const sessionTTL = 6 * time.Minute // token valid for 6 min; client refreshes every 5
// issueToken creates a new signed token, stores it in Redis, and returns it.
func issueToken(username string) (string, error) { func issueToken(username string) (string, error) {
// Check if a valid session already exists
stored, err := rdb.Get(ctx, sessionKey(username)).Result() stored, err := rdb.Get(ctx, sessionKey(username)).Result()
if err == nil { if err == nil {
// Parse out the existing token and return it
parts := strings.SplitN(stored, ":", 2) parts := strings.SplitN(stored, ":", 2)
if len(parts) == 2 { if len(parts) == 2 {
// Refresh TTL and return the existing token
rdb.Expire(ctx, sessionKey(username), sessionTTL) rdb.Expire(ctx, sessionKey(username), sessionTTL)
return username + ":" + parts[0], nil return parts[0], nil
} }
} }
// No valid session — issue a new one
ts := time.Now().Unix() ts := time.Now().Unix()
token := makeToken(username, ts) token := makeToken(username, ts)
val := token + ":" + itoa(ts) val := token + ":" + itoa(ts)
if err := rdb.Set(ctx, sessionKey(username), val, sessionTTL).Err(); err != nil { if err := rdb.Set(ctx, sessionKey(username), val, sessionTTL).Err(); err != nil {
return "", err return "", err
} }
return username + ":" + token, nil return token, nil
} }
// validateToken checks the Authorization header against the stored token. // validateToken checks the Authorization header against the stored token.