func (s *Authenticator) oauth2DoRedirectoToProviderHandler(w http.ResponseWriter, r *http.Request) {
	stateString, err := s.generateValidStateString(r)
	if err != nil {
		log.Printf("Error from generateValidStateString err: %s\n", err)
		http.Error(w, "Internal Error ", http.StatusInternalServerError)
		return
	}
	http.Redirect(w, r, s.generateAuthCodeURL(stateString, r), http.StatusFound)
}
// This is where the redirect to the oath2 provider is computed.
This is where the redirect to the oath2 provider is computed.
// This is where the redirect to the oath2 provider is computed .
func (s *Authenticator) oauth2DoRedirectoToProviderHandler(w http.ResponseWriter, r *http.Request) {
	stateString, err := s.generateValidStateString(r)
	if err != nil {
		log.Printf("Error from generateValidStateString err: %s\n", err)
		http.Error(w, "Internal Error ", http.StatusInternalServerError)
		return
	}
	http.Redirect(w, r, s.generateAuthCodeURL(stateString, r), http.StatusFound)
}
func ( s * Authenticator ) oauth2DoRedirectoToProviderHandler ( w http . ResponseWriter , r * http . Request ) { stateString , err := s . generateValidStateString ( r ) if err != nil { log . Printf ( " \n " , err ) http . Error ( w , " " , http . StatusInternalServerError ) return } http . Redirect ( w , r , s . generateAuthCodeURL ( stateString , r ) , http . StatusFound ) }
This is where the redirect to the oath2 provider is computed.
This is where the redirect to the oath2 provider is computed .