Beispiel #1
0
        public User LoginWithFacebookWeb(FbCredentials credentials)
        {
            if (credentials == null)
                throw new ParamMissingException("Missing credentials.");

            User user = Repository.Single<User>(c => c.Deleted == false
               && c.Facebook.FbId.Equals(credentials.FbId)
               , "Credential", "Facebook");

            if (user != null)
            {
                // update the Facebook access token
                user.Facebook.FbAccessToken = credentials.FbAccessToken;
                user.Credential.WebSecurityToken = Guid.NewGuid().ToString();
                Repository.Save();
                return user;
            }
            else
            {
                // check if email exists
                User EmailUser = Repository.Single<User>(c => c.Deleted == false
                   && c.Credential.Email.Equals(credentials.FbEmail)
                   , "Credential", "Facebook");

                if (EmailUser != null)
                {
                    if (EmailUser.Facebook == null)
                    {
                        EmailUser.Facebook = new FbUser();

                        // update the Facebook ID
                        EmailUser.Facebook.FbId = credentials.FbId;
                        // update the Facebook access token
                        EmailUser.Facebook.FbAccessToken = credentials.FbAccessToken;
                        EmailUser.Credential.WebSecurityToken = Guid.NewGuid().ToString();
                        Repository.Save();
                    }
                    else
                    {
                        return null;
                    }
                    return EmailUser;
                }
                else
                {
                    // create new user
                    User NewUser = new User();
                    NewUser.Facebook = new FbUser();

                    NewUser.Credential = new Credential();
                    NewUser.Credential.Email = credentials.FbEmail;
                    NewUser.Credential.Username = credentials.FbEmail;
                    NewUser.Credential.WebSecurityToken = Guid.NewGuid().ToString();

                    DateTime currentTime = DateTime.UtcNow;

                    NewUser.Facebook.FbEmail = credentials.FbEmail;
                    NewUser.Facebook.FbId = credentials.FbId;
                    NewUser.Facebook.FbAccessToken = credentials.FbAccessToken;
                    NewUser.UserId = Guid.NewGuid().ToString();
                    NewUser.Deleted = false;
                    NewUser.CreatedAt = currentTime;
                    NewUser.LastModified = currentTime;

                   // NewUser.Role = new Role();
                   // NewUser.Role.RoleId = "1";
                    NewUser.RoleId = "1";

                    NewUser.Credential.CredentialId = Guid.NewGuid().ToString();
                    NewUser.Credential.Deleted = false;
                    NewUser.Credential.LastModified = currentTime;
                    NewUser.Credential.TokenExpiry = DateTime.MaxValue;
                    NewUser.Credential.CreatedAt = currentTime;
                    NewUser.Credential.LastModified = currentTime;

                    NewUser.Credential.SecurityToken = Guid.NewGuid().ToString();
                    NewUser.Credential.LastModified = DateTime.UtcNow;
                    NewUser.Credential.TokenExpiry = DateTime.MaxValue;

                    NewUser.CredentialId = NewUser.Credential.CredentialId;

                    Repository.Add<User>(NewUser);
                    Repository.Save();
                    return NewUser;
                }

            }
        }
 public ActionResult LoginWithFacebook(FbCredentials userCred)
 {
     try
     {
         if (userCred == null
             || ExtensionMethods.IsEmptyOrSpace(userCred.FbId)
             || ExtensionMethods.IsEmptyOrSpace(userCred.FbAccessToken))
             //  return Request.CreateResponse(HttpStatusCode.NotAcceptable, GetErrorResponse("Missing required param"));
             return null;
         User user = _userManager.LoginWithFacebook(userCred);
         if (user == null)
            // return Request.CreateResponse(HttpStatusCode.Unauthorized, GetErrorResponse("Login failed."));
             return null;
         else
         {
             UserLite lite = new UserLite();
             lite.CopyFromUserIncludeCredentials(user);
             UserCreationResponse result = new UserCreationResponse
             {
                 UserId = user.UserId,
                 Token = user.Credential.SecurityToken,
                 User = lite
             };
            // return Request.CreateResponse(HttpStatusCode.OK, result);
             return null;
         }
     }
     catch (ParamMissingException e)
     {
         return null;
        // return Request.CreateResponse(HttpStatusCode.NotAcceptable, GetErrorResponse(e.Message));
     }
     catch (AlreadyExistsException e)
     {
         return null;
        // return Request.CreateResponse(HttpStatusCode.Conflict, GetErrorResponse(e.Message));
     }
     catch (InvalidValueException e)
     {
         return null;
        // return Request.CreateResponse(HttpStatusCode.NotAcceptable, GetErrorResponse(e.Message));
     }
     catch (UserNotFoundException e)
     {
         return null;
         //return Request.CreateResponse(HttpStatusCode.NotFound, GetErrorResponse(e.Message));
     }
     catch (Exception e)
     {
         return null;
         //return Request.CreateResponse(HttpStatusCode.InternalServerError, GetErrorResponse("Oops, server encountered an issue... " + e.Message));
     }
 }
Beispiel #3
0
        public User LoginWithFacebook(FbCredentials credentials)
        {
            if (credentials == null)
                throw new ParamMissingException("Missing credentials.");

            User user = Repository.Single<User>(c => c.Deleted == false
                && c.Facebook.FbId.Equals(credentials.FbId)
                , "Credential", "Facebook");
            if (user == null)
                return null;
            else
            {
                // Regenrate the security token.
                user.Credential.SecurityToken = Guid.NewGuid().ToString();
                user.Credential.LastModified = DateTime.UtcNow;
                user.Credential.TokenExpiry = DateTime.MaxValue;
                user.Facebook.FbAccessToken = credentials.FbAccessToken;
                Repository.Save();
                return user;
            }
        }
        public string FbAjax(string accessToken, string fbID, string email)
        {
            FbCredentials userCreds = new FbCredentials();
            userCreds.FbId = fbID;
            userCreds.FbAccessToken = accessToken;
            userCreds.FbEmail = email;

            User user = _userManager.LoginWithFacebookWeb(userCreds);

            if (user == null)
                return "error";

            //return Json("chamara", JsonRequestBehavior.AllowGet);

            return JsonConvert.SerializeObject(new WebCookieLite(user, Request.UrlReferrer));
            //return "hello";
        }