Add HTTP Server #6
@@ -1,5 +1,9 @@
|
||||
package database
|
||||
|
||||
import (
|
||||
"maps"
|
||||
)
|
||||
|
||||
const TOKENTABLECREATE string = `
|
||||
CREATE TABLE IF NOT EXISTS tokens (
|
||||
name varchar(32) PRIMARY KEY NOT NULL,
|
||||
@@ -8,7 +12,9 @@ const TOKENTABLECREATE string = `
|
||||
|
||||
const INSERTTOKENSQL string = "INSERT INTO tokens VALUES (?, ?);"
|
||||
const DELETETOKENSQL string = "DELETE FROM tokens WHERE name = ?;"
|
||||
const QUERYTOKENSQL string = "SELECT token FROM tokens;"
|
||||
const QUERYTOKENSQL string = "SELECT * FROM tokens;"
|
||||
|
||||
var tokenCache map[string]string = make(map[string]string)
|
||||
|
||||
func InsertToken(name string, token string) error {
|
||||
_, err := database.Exec(INSERTTOKENSQL, name, token)
|
||||
@@ -20,6 +26,15 @@ func DeleteToken(name string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
func ValidateTokenCache(token string) (bool, error) {
|
||||
for v := range maps.Values(tokenCache) {
|
||||
if token == v {
|
||||
return true, nil
|
||||
}
|
||||
}
|
||||
return ValidateToken(token)
|
||||
}
|
||||
|
||||
func ValidateToken(token string) (bool, error) {
|
||||
result, err := database.Query(QUERYTOKENSQL)
|
||||
if err != nil {
|
||||
@@ -27,12 +42,14 @@ func ValidateToken(token string) (bool, error) {
|
||||
}
|
||||
defer result.Close()
|
||||
|
||||
var foundToken string
|
||||
var name, foundToken string
|
||||
for result.Next() {
|
||||
result.Scan(&token)
|
||||
result.Scan(&name, &foundToken)
|
||||
tokenCache[name] = foundToken
|
||||
if token == foundToken {
|
||||
return true, nil
|
||||
}
|
||||
}
|
||||
return false, nil
|
||||
err = result.Err()
|
||||
return false, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user