arnaucube
arnaucube/darkID-prototypePublic Self-hosted repository
darkID-prototype/darkID-login-example/main.go
darkID-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}