in internal/auth/auth.go [90:126]
func (a *Auth) TryAuthenticate(w http.ResponseWriter, r *http.Request, domains source.Source) bool {
if a == nil {
return false
}
session, err := a.checkSession(w, r)
if err != nil {
return true
}
// Request is for auth
if r.URL.Path != callbackPath {
return false
}
logRequest(r).Info("Receive OAuth authentication callback")
if a.handleProxyingAuth(session, w, r, domains) {
return true
}
// If callback is not successful
errorParam := r.URL.Query().Get("error")
if errorParam != "" {
logRequest(r).WithField("error", errorParam).Warn("OAuth endpoint returned error")
httperrors.Serve401(w)
return true
}
if verifyCodeAndStateGiven(r) {
a.checkAuthenticationResponse(session, w, r)
return true
}
return false
}