Ejemplo n.º 1
0
        public IHttpActionResult FacebookAdd([FromBody] OAuthFacebookLoginPost dataPost)
        {
            ValidateOAuth3rdAddRequest(OAuthService.Facebook, dataPost);
            var facebookClient = OAuth3rdClient <FacebookClient>(dataPost);

            OAuthCredential facebookCredential;

            try {
                facebookClient.ExchangeCodeForToken(dataPost.Code);

                facebookCredential = new OAuthCredential {
                    OAuthProvider = OAuthService.Facebook,
                    Uid           = facebookClient.UserID,
                    Token         = facebookClient.Token.Key,
                    IsInvalid     = false,

                    User = CurrentUser
                };
            } catch (OAuthUnexpectedResponse ex) {
                throw new HttpNotFoundException(
                          "105 " + ControllerStrings.Warning105_SocialTokenNotFound,
                          ex
                          );
            }

            Database.OAuthCredentialStore.Add(facebookCredential);
            Database.SaveChanges();

            return(Ok());
        }
Ejemplo n.º 2
0
        public HttpResponseMessage FacebookLogin([FromBody] OAuthFacebookLoginPost dataPost)
        {
            ValidateOAuth3rdLoginRequest(OAuthService.Facebook, dataPost);
            var facebookClient = OAuth3rdClient <FacebookClient>(dataPost);

            string facebookUserID;

            try {
                facebookClient.ExchangeCodeForToken(dataPost.Code);
                facebookUserID = facebookClient.UserID;
            } catch (OAuthUnexpectedResponse ex) {
                OAuth.Token.LoginAttempts++;
                Database.TokenStore.Update(OAuth.Token);
                Database.SaveChanges();

                throw new HttpBadRequestException(
                          "105 " + ControllerStrings.Warning105_SocialTokenNotFound,
                          ex
                          );
            }

            OAuth3rdCredential.Token = facebookClient.Token.Key;
            Database.OAuthCredentialStore.Update(OAuth3rdCredential);

            return(ExchangeOAuthAccessToken());
        }