Login System

This commit is contained in:
2026-06-03 13:55:48 +02:00
parent bd7b77c196
commit ba87deb32b
2 changed files with 191 additions and 171 deletions

View File

@@ -5,6 +5,7 @@ import (
"database/sql"
"errors"
"log"
"strings"
_ "github.com/glebarez/go-sqlite"
)
@@ -22,7 +23,7 @@ func InitDB(filepath string) error {
schema := `
PRAGMA foreign_keys = ON;
CREATE TABLE IF NOT EXISTS users (
CREATE TABLE IF NOT EXISTS users (
id TEXT PRIMARY KEY,
username TEXT NOT NULL UNIQUE,
password TEXT NOT NULL,
@@ -74,6 +75,24 @@ func InitDB(filepath string) error {
return err
}
// Users
func AddUser(user *models.User) error {
_, err := DB.Exec("INSERT INTO users(id, username, password, role) VALUES (?, ?, ?, ?)", user.ID, strings.ToLower(user.Username), user.Password, user.Role)
return err
}
func GetUserByUsername(username string) (models.User, error) {
row := DB.QueryRow("SELECT * FROM users WHERE username = ?", strings.ToLower(username))
var user models.User
err := row.Scan(&user.ID, &user.Username, &user.Password, &user.Role)
return user, err
}
func GetUserById(id string) (models.User, error) {
row := DB.QueryRow("SELECT * FROM users WHERE id = ?", id)
var user models.User
err := row.Scan(&user.ID, &user.Username, &user.Password, &user.Role)
return user, err
}
// Refresh Tokens
func AddRefreshToken(token *models.RefreshToken) error {
_, err := DB.Exec("INSERT INTO refresh_tokens(id, user_id, token_hash, expires_at, created_at, revoked, device_info) VALUES (?, ?, ?, ?, ?, ?, ?)",