Skip to content

Commit 92c5abd

Browse files
committed
logging and bugfix
1 parent e0dfd6d commit 92c5abd

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

goth.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ package whgoth
66
import (
77
"crypto/rand"
88
"encoding/hex"
9+
"log"
910
"net/http"
1011
"net/url"
1112

@@ -31,8 +32,9 @@ type AuthProvider struct {
3132
func newAuthProvider(p goth.Provider, baseURL, sessionNamespace string) (
3233
a *AuthProvider) {
3334
a = &AuthProvider{
34-
Provider: p,
35-
baseURL: baseURL,
35+
Provider: p,
36+
baseURL: baseURL,
37+
sessionNamespace: sessionNamespace,
3638
}
3739
a.Dir = whmux.Dir{
3840
"login": whmux.Exact(http.HandlerFunc(a.login)),
@@ -101,6 +103,11 @@ func (a *AuthProvider) callback(w http.ResponseWriter, r *http.Request) {
101103
return
102104
}
103105

106+
if loggedIn, _ := session.Values["logged_in"].(bool); loggedIn {
107+
wherr.Handle(w, r, wherr.BadRequest.New("already logged in"))
108+
return
109+
}
110+
104111
auth, ok := session.Values["auth"].(string)
105112
if !ok {
106113
wherr.Handle(w, r, wherr.InternalServerError.New(
@@ -151,15 +158,18 @@ func (a *AuthProvider) User(ctx context.Context) (*goth.User, error) {
151158

152159
sess, err := a.Provider.UnmarshalSession(auth)
153160
if err != nil {
161+
log.Printf("failed to unmarshal session: %v", err)
154162
return nil, nil
155163
}
156164

157165
u, err := a.Provider.FetchUser(sess)
158166
if err != nil {
167+
log.Printf("failed to fetch user: %v", err)
159168
return nil, nil
160169
}
161170

162171
if u.UserID == "" || u.Provider == "" {
172+
log.Printf("user had no user id or provider set")
163173
return nil, nil
164174
}
165175
return &u, nil

0 commit comments

Comments
 (0)