feat(ESISSO): enhance callback server with detailed logging and improved response handling
This commit is contained in:
11
esi_sso.go
11
esi_sso.go
@@ -248,6 +248,7 @@ func (s *ESISSO) StartCallbackServerAsync() error {
|
|||||||
|
|
||||||
mux := http.NewServeMux()
|
mux := http.NewServeMux()
|
||||||
mux.HandleFunc(u.Path, func(w http.ResponseWriter, r *http.Request) {
|
mux.HandleFunc(u.Path, func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
fmt.Printf("Callback received: %s %s\n", r.Method, r.URL.String())
|
||||||
if r.Method != http.MethodGet {
|
if r.Method != http.MethodGet {
|
||||||
w.WriteHeader(http.StatusMethodNotAllowed)
|
w.WriteHeader(http.StatusMethodNotAllowed)
|
||||||
return
|
return
|
||||||
@@ -256,18 +257,23 @@ func (s *ESISSO) StartCallbackServerAsync() error {
|
|||||||
code := q.Get("code")
|
code := q.Get("code")
|
||||||
st := q.Get("state")
|
st := q.Get("state")
|
||||||
if code == "" || st == "" || st != s.state {
|
if code == "" || st == "" || st != s.state {
|
||||||
|
fmt.Printf("Invalid SSO response: code=%s, state=%s, expected_state=%s\n", code, st, s.state)
|
||||||
w.WriteHeader(http.StatusBadRequest)
|
w.WriteHeader(http.StatusBadRequest)
|
||||||
_, _ = w.Write([]byte("Invalid SSO response"))
|
_, _ = w.Write([]byte("Invalid SSO response"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
fmt.Printf("Exchanging token for code: %s\n", code)
|
||||||
if err := s.exchangeToken(r.Context(), code); err != nil {
|
if err := s.exchangeToken(r.Context(), code); err != nil {
|
||||||
|
fmt.Printf("Token exchange failed: %v\n", err)
|
||||||
w.WriteHeader(http.StatusInternalServerError)
|
w.WriteHeader(http.StatusInternalServerError)
|
||||||
_, _ = w.Write([]byte("Token exchange failed: " + err.Error()))
|
_, _ = w.Write([]byte("Token exchange failed: " + err.Error()))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
_, _ = io.WriteString(w, "Login successful. You can close this window.")
|
fmt.Printf("Login successful for character: %s (%d)\n", s.characterName, s.characterID)
|
||||||
|
w.Header().Set("Content-Type", "text/html")
|
||||||
|
_, _ = io.WriteString(w, "<html><body><h1>Login successful!</h1><p>You can close this window.</p></body></html>")
|
||||||
go func() {
|
go func() {
|
||||||
time.Sleep(200 * time.Millisecond)
|
time.Sleep(1 * time.Second)
|
||||||
_ = s.server.Shutdown(context.Background())
|
_ = s.server.Shutdown(context.Background())
|
||||||
}()
|
}()
|
||||||
})
|
})
|
||||||
@@ -277,6 +283,7 @@ func (s *ESISSO) StartCallbackServerAsync() error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fmt.Printf("Callback server listening on %s%s\n", hostPort, u.Path)
|
||||||
s.server = &http.Server{Handler: mux}
|
s.server = &http.Server{Handler: mux}
|
||||||
go func() { _ = s.server.Serve(ln) }()
|
go func() { _ = s.server.Serve(ln) }()
|
||||||
return nil
|
return nil
|
||||||
|
Reference in New Issue
Block a user