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