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