Mercurial > gemma
view cmd/tokenserver/main.go @ 14:afc0de09231f
Fix path in tokenserver. Fix configuration in client.
After reorganizing and merging the tokenserver with the current frontendcode
were two defects:
1) The run:both command for yarn the toplevel path as origin.
Now to start from the client folder, the command has to be relative to that.
2) The api prefix was doubled for the tokenserver route.
The subpaths are '/' and '/token', not '/api/token'
author | Thomas Junk <thomas.junk@intevation.de> |
---|---|
date | Wed, 20 Jun 2018 17:21:32 +0200 |
parents | 000adddf74c8 |
children | 05d828374256 |
line wrap: on
line source
package main import ( "flag" "fmt" "log" "net/http" "path/filepath" "time" jwt "github.com/dgrijalva/jwt-go" ) func token(rw http.ResponseWriter, req *http.Request) { user := req.FormValue("user") password := req.FormValue("password") _ = password eol := time.Now().Add(45 * time.Minute) token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{ "user": user, "eol": eol.Unix(), }) signingKey := []byte("very, very secret!") tokenString, err := token.SignedString(signingKey) if err != nil { http.Error(rw, "Signing failed", http.StatusInternalServerError) return } rw.Header().Set("Content-Type", "text/plain") fmt.Fprintf(rw, "%s\n", tokenString) } func main() { port := flag.Int("port", 8000, "port to listen at.") host := flag.String("host", "localhost", "host to listen at.") flag.Parse() p, _ := filepath.Abs("./web") mux := http.NewServeMux() mux.Handle("/", http.StripPrefix("/", http.FileServer(http.Dir(p)))) mux.HandleFunc("/token", token) api := http.NewServeMux() api.Handle("/api/", http.StripPrefix("/api", mux)) addr := fmt.Sprintf("%s:%d", *host, *port) log.Fatalln(http.ListenAndServe(addr, api)) }