コード例 #1
0
ファイル: myusa.go プロジェクト: edhgoose/oauth2_proxy
func (p *MyUsaProvider) GetEmailAddress(body []byte, access_token string) (string, error) {
	req, err := http.NewRequest("GET",
		p.ProfileUrl.String()+"?access_token="+access_token, nil)
	if err != nil {
		log.Printf("failed building request %s", err)
		return "", err
	}
	json, err := api.Request(req)
	if err != nil {
		log.Printf("failed making request %s", err)
		return "", err
	}
	return json.Get("email").String()
}
コード例 #2
0
ファイル: myusa.go プロジェクト: BrianAdams/oauth2_proxy
func (p *MyUsaProvider) GetEmailAddress(s *SessionState) (string, error) {
	req, err := http.NewRequest("GET",
		p.ProfileURL.String()+"?access_token="+s.AccessToken, nil)
	if err != nil {
		log.Printf("failed building request %s", err)
		return "", err
	}
	json, err := api.Request(req)
	if err != nil {
		log.Printf("failed making request %s", err)
		return "", err
	}
	return json.Get("email").String()
}
コード例 #3
0
ファイル: azure.go プロジェクト: pugna0/oauth2_proxy
func (p *AzureProvider) GetEmailAddress(s *SessionState) (string, 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 {
		log.Printf("failed making request %s", err)
		return "", err
	}

	return json.Get("mail").String()
}
コード例 #4
0
func (p *LinkedInProvider) GetEmailAddress(s *SessionState) (string, error) {
	if s.AccessToken == "" {
		return "", errors.New("missing access token")
	}
	req, err := http.NewRequest("GET", p.ProfileUrl.String()+"?format=json", nil)
	if err != nil {
		return "", err
	}
	req.Header = getLinkedInHeader(s.AccessToken)

	json, err := api.Request(req)
	if err != nil {
		return "", err
	}

	email, err := json.String()
	if err != nil {
		return "", err
	}
	return email, nil
}
コード例 #5
0
ファイル: azure.go プロジェクト: spikeekips/oauth2_proxy
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
}
コード例 #6
0
ファイル: linkedin.go プロジェクト: edhgoose/oauth2_proxy
func (p *LinkedInProvider) GetEmailAddress(body []byte, access_token string) (string, error) {
	if access_token == "" {
		return "", errors.New("missing access token")
	}
	params := url.Values{}
	req, err := http.NewRequest("GET", p.ProfileUrl.String()+"?format=json", bytes.NewBufferString(params.Encode()))
	if err != nil {
		return "", err
	}
	req.Header = getLinkedInHeader(access_token)

	json, err := api.Request(req)
	if err != nil {
		log.Printf("failed making request %s", err)
		return "", err
	}

	email, err := json.String()
	if err != nil {
		log.Printf("failed making request %s", err)
		return "", err
	}
	return email, nil
}