From 19147ea950ecd6e3ccf1a60ffdbfbcb9bf90224d Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Fri, 24 May 2019 06:43:42 +0000 Subject: [PATCH] respond to login attempt Signed-off-by: Jeff Carr --- gorilla-server/main.go | 44 ++++++++++++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/gorilla-server/main.go b/gorilla-server/main.go index 0d801a0..da166a2 100644 --- a/gorilla-server/main.go +++ b/gorilla-server/main.go @@ -11,6 +11,7 @@ import "github.com/golang/protobuf/proto" import pb "git.wit.com/wit/witProtobuf" import "github.com/gorilla/websocket" import "github.com/davecgh/go-spew/spew" +import "github.com/tidwall/gjson" const ( API = "http://stackapi:4000/" @@ -22,14 +23,13 @@ type network struct { Subdomain string `json:"subdomain"` } -func checkLogin(token string) bool { - var networks []network +func checkLogin(ge *pb.Event) bool { req, err := http.NewRequest("GET", API + "me", nil) if err != nil { log.Println("can't make new req") return false } - req.Header.Set("X-Wit-Auth", token) + req.Header.Set("X-Wit-Auth", ge.Token) client := &http.Client{} resp, err := client.Do(req) if err != nil { @@ -47,16 +47,17 @@ func checkLogin(token string) bool { return false } else { len := len(body) - err = json.Unmarshal(body, &networks) - if err != nil { - log.Println("body = ", body) - log.Println("body len = ", len) - log.Println("can't unmarshal resp for list networks: %s", err) - return false + log.Println("body = ", string(body)) + log.Println("body len = ", len) + email := gjson.Get(string(body), "email") + log.Println("email = ", email.String()) + log.Println("ge.Username = ", ge.Username) + if (email.String() == ge.Username) { + log.Println("\tTHIS TOTALLY WORKED MAN") + return true } } - spew.Dump(networks) - return true + return false } func fetchNetworks(token string) []network { @@ -172,13 +173,28 @@ func processLoginEvent(ge *pb.Event) *pb.Event { log.Println("processLoginEvent() START") log.Println("processLoginEvent() ge.Token =", ge.Token) + log.Println("processLoginEvent() NEED TO LOGIN HERE OR CHECK TOKEN WORKS") - checkLogin(ge.Token) + if checkLogin(ge) { + log.Println("processLoginEvent() LOGIN WORKED") + log.Println("processLoginEvent() LOGIN WORKED") + log.Println("processLoginEvent() LOGIN WORKED") + e := pb.MakeOkResponse() + e.Comment = "LOGIN WORKED" + return e + } else { + log.Println("processLoginEvent() LOGIN FAILED") + log.Println("processLoginEvent() LOGIN FAILED") + log.Println("processLoginEvent() LOGIN FAILED") + e := pb.MakeFailResponse() + e.Comment = "LOGIN FAILED" + return e + } log.Println("processLoginEvent() END") - e := pb.Event{} - return &e + e := &pb.Event{} + return e } // Also potentially look at: