in providers/azure.go [86:124]
func (p *AzureProvider) GetEmailAddress(s *SessionState) (string, error) {
var email string
var err error
if s.AccessToken == "" {
return "", errors.New("missing access token")
}
req, err := http.NewRequest("GET", p.ProfileURL.String(), nil)
if err != nil {
return "", err
}
req.Header = getAzureHeader(s.AccessToken)
json, err := api.Request(req)
if err != nil {
return "", err
}
email, err = getEmailFromJSON(json)
if err == nil && email != "" {
return email, err
}
email, err = json.Get("userPrincipalName").String()
if err != nil {
log.Printf("failed making request %s", err)
return "", err
}
if email == "" {
log.Printf("failed to get email address")
return "", err
}
return email, err
}