@@ -130,6 +130,7 @@ func (s *Service) callback(w http.ResponseWriter, r *http.Request) {
130130 }
131131
132132 // verify request
133+ logrus .Debug ("[auth.callback] verifying callback" )
133134 principal , userEmail , err := provider .VerifyCallback (r )
134135 if err != nil {
135136 if _ , ok := err .(AccessDenied ); ok {
@@ -142,13 +143,15 @@ func (s *Service) callback(w http.ResponseWriter, r *http.Request) {
142143
143144 // see if the user exists and is bound to this principal
144145 user = s .UserProvider .GetByPrincipals (principal )
145- if user != nil {
146+ if user == nil {
147+ logrus .Debug ("[auth.callback] user matching principal not found" )
146148 // see if this user exists for this email
147149 user = s .UserProvider .GetByEmail (userEmail )
148- if user . Id == "" {
150+ if user != nil {
149151 // if we find the user by their email, bind the principal
150152 user .Principals = append (user .Principals , principal )
151153 if err = s .UserProvider .Save (user ); err != nil {
154+ logrus .Errorf ("[auth.callback] failed to update user: %v" , err )
152155 w .WriteHeader (http .StatusInternalServerError )
153156 return
154157 }
@@ -159,10 +162,12 @@ func (s *Service) callback(w http.ResponseWriter, r *http.Request) {
159162
160163 // create new user
161164 if user == nil {
165+ logrus .Debug ("[auth.callback] user does not exist" )
162166 newUser := NewUser ()
163167 newUser .Principals = append (newUser .Principals , principal )
164168 newUser .Email = userEmail
165169 if err = s .UserProvider .Save (& newUser ); err != nil {
170+ logrus .Errorf ("[auth.callback] failed to save new user: %v" , err )
166171 w .WriteHeader (http .StatusInternalServerError )
167172 return
168173 }
@@ -177,6 +182,7 @@ func (s *Service) callback(w http.ResponseWriter, r *http.Request) {
177182 newToken .UserId = user .Id
178183 newToken .ExpiresAt = time .Now ().Add (sessionTTL )
179184 if err = s .TokenProvider .Save (& newToken ); err != nil {
185+ logrus .Errorf ("[auth.callback] failed to save new token: %v" , err )
180186 w .WriteHeader (http .StatusInternalServerError )
181187 return
182188 }
@@ -206,7 +212,8 @@ func (s *Service) getUserPreferences(w http.ResponseWriter, r *http.Request) {
206212
207213 user := s .UserProvider .Get (token .UserId )
208214
209- if json .NewEncoder (w ).Encode (user .Preferences ) != nil {
215+ if err := json .NewEncoder (w ).Encode (user .Preferences ); err != nil {
216+ logrus .Errorf ("[auth.getUserPreferences] failed to parse user preferences: %v" , err )
210217 w .WriteHeader (http .StatusInternalServerError )
211218 }
212219}
@@ -248,6 +255,7 @@ func (s *Service) updateUserPreferences(w http.ResponseWriter, r *http.Request)
248255
249256 err = s .UserProvider .Save (user )
250257 if err != nil {
258+ logrus .Errorf ("[auth.updateUserPreferences] failed to save user preferences: %v" , err )
251259 w .WriteHeader (http .StatusInternalServerError )
252260 return
253261 }
@@ -270,7 +278,8 @@ func (s *Service) listToken(w http.ResponseWriter, r *http.Request) {
270278 }
271279 }
272280
273- if json .NewEncoder (w ).Encode (rval ) != nil {
281+ if err := json .NewEncoder (w ).Encode (rval ); err != nil {
282+ logrus .Errorf ("[auth.listToken] failed to encode token list: %v" , err )
274283 w .WriteHeader (http .StatusInternalServerError )
275284 }
276285}
@@ -291,7 +300,8 @@ func (s *Service) createWSToken(w http.ResponseWriter, r *http.Request) {
291300 token .UserId = userId
292301 token .ExpiresAt = time .Now ().Add (wsTokenTTL )
293302
294- if s .TokenProvider .Save (& token ) != nil {
303+ if err := s .TokenProvider .Save (& token ); err != nil {
304+ logrus .Errorf ("[auth.createWSToken] failed to save token: %v" , err )
295305 w .WriteHeader (http .StatusInternalServerError )
296306 return
297307 }
@@ -328,7 +338,8 @@ func (s *Service) createToken(w http.ResponseWriter, r *http.Request) {
328338 token .UserId = userId
329339 token .Name = requestToken .Name
330340
331- if s .TokenProvider .Save (& token ) != nil {
341+ if err := s .TokenProvider .Save (& token ); err != nil {
342+ logrus .Errorf ("[auth.createToken] failed to save token: %v" , err )
332343 w .WriteHeader (http .StatusInternalServerError )
333344 return
334345 }
@@ -349,9 +360,12 @@ func (s *Service) deleteToken(w http.ResponseWriter, r *http.Request) {
349360
350361 targetToken := s .TokenProvider .Get (mux .Vars (r )["tokenId" ])
351362
352- if targetToken .UserId == token .UserId && s .TokenProvider .Delete (targetToken ) != nil {
353- w .WriteHeader (http .StatusInternalServerError )
354- return
363+ if targetToken .UserId == token .UserId {
364+ if err := s .TokenProvider .Delete (targetToken ); err != nil {
365+ logrus .Errorf ("[auth.deleteToken] failed to delete token: %v" , err )
366+ w .WriteHeader (http .StatusInternalServerError )
367+ return
368+ }
355369 }
356370
357371 w .WriteHeader (http .StatusNoContent )
@@ -367,7 +381,6 @@ func (s *Service) providerRedirect(w http.ResponseWriter, r *http.Request) {
367381 }
368382
369383 w .WriteHeader (http .StatusNotAcceptable )
370-
371384}
372385
373386func (s * Service ) listProviders (w http.ResponseWriter , _ * http.Request ) {
@@ -378,17 +391,18 @@ func (s *Service) listProviders(w http.ResponseWriter, _ *http.Request) {
378391 result = append (result , provider .Name ())
379392 }
380393
381- if json .NewEncoder (w ).Encode (result ) != nil {
382- w .WriteHeader (http .StatusInternalServerError )
383- }
394+ _ = json .NewEncoder (w ).Encode (result )
384395}
385396
386397// Logout
387398func (s * Service ) logout (w http.ResponseWriter , r * http.Request ) {
388399 token := s .TokenProvider .FromRequest (r )
389400
390- if token != nil && s .TokenProvider .Delete (token ) != nil {
391- w .WriteHeader (http .StatusInternalServerError )
401+ if token != nil {
402+ if err := s .TokenProvider .Delete (token ); err != nil {
403+ logrus .Errorf ("[auth.logout] failed to delete token: %v" , err )
404+ w .WriteHeader (http .StatusInternalServerError )
405+ }
392406 }
393407
394408 cookie := & http.Cookie {
0 commit comments