You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

49 lines
1.1 KiB

  1. package main
  2. import (
  3. "fmt"
  4. "log"
  5. "math/rand"
  6. "net/http"
  7. "time"
  8. "github.com/fatih/color"
  9. "github.com/gorilla/handlers"
  10. )
  11. const keysDir = "keys"
  12. const keysize = 2048
  13. const hashize = 1536
  14. func main() {
  15. color.Blue("Starting darkID-libarary-login-example")
  16. readConfig("config.json")
  17. fmt.Println(config)
  18. //initialize rand
  19. rand.Seed(time.Now().UnixNano())
  20. //initialize token
  21. initializeToken()
  22. //run thw webserver
  23. go GUI()
  24. //run API
  25. log.Println("api server running")
  26. log.Print("port: ")
  27. log.Println(config.Port)
  28. router := NewRouter()
  29. headersOk := handlers.AllowedHeaders([]string{"X-Requested-With", "Access-Control-Allow-Origin"})
  30. originsOk := handlers.AllowedOrigins([]string{"*"})
  31. methodsOk := handlers.AllowedMethods([]string{"GET", "HEAD", "POST", "PUT", "OPTIONS"})
  32. log.Fatal(http.ListenAndServe(":"+config.Port, handlers.CORS(originsOk, headersOk, methodsOk)(router)))
  33. }
  34. func GUI() {
  35. //here, run webserver
  36. log.Println("webserver in port " + config.WebServerPort)
  37. http.Handle("/", http.FileServer(http.Dir("./web")))
  38. http.ListenAndServe(":"+config.WebServerPort, nil)
  39. }