// Authorize the session with Twitter and return the access token to be stored for future use. func (s *Session) Authorize(provider goth.Provider, params goth.Params) (string, error) { p := provider.(*Provider) accessToken, err := p.consumer.AuthorizeToken(s.RequestToken, params.Get("oauth_verifier")) if err != nil { return "", err } s.AccessToken = accessToken return accessToken.Token, err }
// Authorize the session with LastFM and return the access token to be stored for future use. func (s *Session) Authorize(provider goth.Provider, params goth.Params) (string, error) { p := provider.(*Provider) sess, err := p.GetSession(params.Get("token")) if err != nil { return "", err } s.AccessToken = sess["token"] s.Login = sess["login"] return sess["token"], err }
// Authorize the session with Instagram and return the access token to be stored for future use. func (s *Session) Authorize(provider goth.Provider, params goth.Params) (string, error) { p := provider.(*Provider) token, err := p.config.Exchange(oauth2.NoContext, params.Get("code")) if err != nil { return "", err } if !token.Valid() { return "", errors.New("Invalid token received from provider") } s.AccessToken = token.AccessToken return token.AccessToken, err }
// Authorize the session with Wepay and return the access token to be stored for future use. func (s *Session) Authorize(provider goth.Provider, params goth.Params) (string, error) { p := provider.(*Provider) oauth2.RegisterBrokenAuthHeaderProvider(tokenURL) token, err := p.config.Exchange(oauth2.NoContext, params.Get("code")) if err != nil { return "", err } if !token.Valid() { return "", errors.New("Invalid token received from provider") } s.AccessToken = token.AccessToken s.RefreshToken = token.RefreshToken s.ExpiresAt = token.Expiry return token.AccessToken, err }
// Authorize the session with Stripe and return the access token to be stored for future use. func (s *Session) Authorize(provider goth.Provider, params goth.Params) (string, error) { p := provider.(*Provider) token, err := p.config.Exchange(oauth2.NoContext, params.Get("code")) if err != nil { return "", err } if !token.Valid() { return "", errors.New("Invalid token received from provider") } s.AccessToken = token.AccessToken s.RefreshToken = token.RefreshToken s.ExpiresAt = token.Expiry s.ID = token.Extra("stripe_user_id").(string) //Required to get the user info from sales force return token.AccessToken, err }
// Authorize the session with Cloud Foundry and return the access token to be stored for future use. func (s *Session) Authorize(provider goth.Provider, params goth.Params) (string, error) { p := provider.(*Provider) ctx := context.WithValue(oauth2.NoContext, oauth2.HTTPClient, p.Client) token, err := p.config.Exchange(ctx, params.Get("code")) if err != nil { return "", err } if !token.Valid() { return "", errors.New("Invalid token received from provider") } s.AccessToken = token.AccessToken s.RefreshToken = token.RefreshToken s.ExpiresAt = token.Expiry fmt.Printf("TOKEN: %s\n", s.AccessToken) return token.AccessToken, err }
// Authorize the session with Yammer and return the access token to be stored for future use. func (s *Session) Authorize(provider goth.Provider, params goth.Params) (string, error) { p := provider.(*Provider) v := url.Values{ "grant_type": {"authorization_code"}, "code": CondVal(params.Get("code")), "redirect_uri": CondVal(p.config.RedirectURL), "scope": CondVal(strings.Join(p.config.Scopes, " ")), } //Cant use standard auth2 implementation as yammer returns access_token as json rather than string //stand methods are throwing exception //token, err := p.config.Exchange(oauth2.NoContext, params.Get("code")) autData, err := retrieveAuthData(p.ClientKey, p.Secret, tokenURL, v) if err != nil { return "", err } token := autData["access_token"]["token"].(string) s.AccessToken = token s.userMap = autData["user"] return token, err }
// Authorize the session with Steam and return the unique response_nonce by OpenID. func (s *Session) Authorize(provider goth.Provider, params goth.Params) (string, error) { if params.Get("openid.mode") != "id_res" { return "", errors.New("Mode must equal to \"id_res\".") } if params.Get("openid.return_to") != s.CallbackURL { return "", errors.New("The \"return_to url\" must match the url of current request.") } v := make(url.Values) v.Set("openid.assoc_handle", params.Get("openid.assoc_handle")) v.Set("openid.signed", params.Get("openid.signed")) v.Set("openid.sig", params.Get("openid.sig")) v.Set("openid.ns", params.Get("openid.ns")) split := strings.Split(params.Get("openid.signed"), ",") for _, item := range split { v.Set("openid."+item, params.Get("openid."+item)) } v.Set("openid.mode", "check_authentication") resp, err := http.PostForm(apiLoginEndpoint, v) if err != nil { return "", err } defer resp.Body.Close() content, err := ioutil.ReadAll(resp.Body) if err != nil { return "", err } response := strings.Split(string(content), "\n") if response[0] != "ns:"+openIDNs { return "", errors.New("Wrong ns in the response.") } if response[1] == "is_valid:false" { return "", errors.New("Unable validate openId.") } openIDURL := params.Get("openid.claimed_id") validationRegExp := regexp.MustCompile("^(http|https)://steamcommunity.com/openid/id/[0-9]{15,25}$") if !validationRegExp.MatchString(openIDURL) { return "", errors.New("Invalid Steam ID pattern.") } s.SteamID = regexp.MustCompile("\\D+").ReplaceAllString(openIDURL, "") s.ResponseNonce = params.Get("openid.response_nonce") return s.ResponseNonce, nil }