alfheim-website/main.go
Vicente Ferrari Smith de52d92eb7 initial commit
git-svn-id: svn://losandesgames.com/alfheim-website@1 15359d88-9307-4e75-a9c1-e5686e5897df
2024-05-13 17:55:11 +00:00

102 lines
2.2 KiB
Go

package main
import "fmt"
import "log"
import "flag"
import "net/http"
import _ "github.com/lib/pq"
import "database/sql"
import "github.com/gorilla/sessions"
import "regexp"
import "alfheimgame/models"
//import "golang.org/x/crypto/bcrypt"
var users *models.Usermodel
var key = []byte("super-secret-key")
var store = sessions.NewCookieStore(key)
var emailrx = regexp.MustCompile("/^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/");
type LoginData struct {
username string
password string
}
func secureheaders(next http.Handler) http.Handler {
fn := func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("X-XSS-Protection", "1; mode=block")
w.Header().Set("X-Frame-Options", "deny")
next.ServeHTTP(w, r)
}
return http.HandlerFunc(fn)
}
func main() {
addr := flag.String("addr", ":8080", "HTTP network address")
flag.Parse()
fmt.Println("Hello, Sailor!")
var err error
db, err := sql.Open("postgres", "postgres://elves_database:iK2SoVbDhdCki5n3LxGyP6zKpLspt4@80.240.25.87/elves_database")
if err != nil {
log.Fatal(err)
}
defer db.Close()
users = &models.Usermodel{db}
mux := http.NewServeMux()
//rows, err := db.Query("SELECT * FROM accounts")
//if err != nil {
// log.Fatal(err)
//}
//defer rows.Close()
//accounts := make([]*Account, 0)
//for rows.Next() {
// acc := new(Account)
// err := rows.Scan(&acc.id, &acc.Username, &acc.password, &acc.Color)
// if err != nil {
// log.Fatal(err)
// }
// accounts = append(accounts, acc)
//}
//if err = rows.Err(); err != nil {
// log.Fatal(err)
//}
//for _, acc := range accounts {
// fmt.Println(acc)
//}
mux.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static"))))
mux.HandleFunc("/favicon.ico", favicon)
mux.HandleFunc("/", home)
mux.HandleFunc("/login", login)
mux.HandleFunc("/register", register)
mux.HandleFunc("/account", account)
log.Fatal(http.ListenAndServe(*addr, secureheaders(mux)))
}
//cookie := http.Cookie{
// Name: "exampleCookie",
// Value: "Hello world!",
// Path: "/",
// HttpOnly: true,
// Secure: true,
// SameSite: http.SameSiteLaxMode,
//}
//http.SetCookie(w, &cookie)