49 lines
836 B
Go
49 lines
836 B
Go
package db
|
|
|
|
import (
|
|
"database/sql"
|
|
"log"
|
|
|
|
_ "github.com/go-sql-driver/mysql"
|
|
)
|
|
|
|
var db *sql.DB
|
|
|
|
func Init() {
|
|
var err error
|
|
db, err = sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/dbname")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
if err = db.Ping(); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func Login(username, password string) (bool, error) {
|
|
var dbPassword string
|
|
query := "SELECT password FROM users WHERE username = ?"
|
|
err := db.QueryRow(query, username).Scan(&dbPassword)
|
|
if err != nil {
|
|
if err == sql.ErrNoRows {
|
|
return false, nil
|
|
}
|
|
return false, err
|
|
}
|
|
|
|
if dbPassword != password {
|
|
return false, nil
|
|
}
|
|
|
|
return true, nil
|
|
var token string
|
|
query = "SELECT token FROM users WHERE username = ?"
|
|
err = db.QueryRow(query, username).Scan(&token)
|
|
if err != nil {
|
|
return false, err
|
|
}
|
|
|
|
return true, token
|
|
}
|