Ejemplo n.º 1
0
        // Get user
        public async Task <FacebookLoginResponse> GetUser(FacebookLoginRequest model)
        {
            var result = await GetAsync <dynamic>(
                model.FacebookToken,
                model.FacebookUID,
                "fields=name,email,birthday,location,gender,picture.width(500)"
                );

            if (result == null)
            {
                throw new AppException("Invalid Facebook credentials");
            }
            if (await _context.Users.AnyAsync(u => u.FacebookUID == model.FacebookUID))
            {
                return(new FacebookLoginResponse
                {
                    Existing = true
                });
            }
            var facebookUser = new FacebookLoginResponse()
            {
                Email       = result.email ?? null,
                Name        = result.name,
                Gender      = result.gender ?? null,
                DateOfBirth = result.birthday ?? null,
                Location    = result.location != null ? result.location.name : null,
                FacebookUID = model.FacebookUID,
                Picture     = result.picture.data.url,
                Existing    = false
            };

            return(facebookUser);
        }
Ejemplo n.º 2
0
        private async Task <User> CreateFacebookUser(FacebookLoginResponse facebookUser)
        {
            var user = new User
            {
                FirstName    = facebookUser.FirstName,
                LastName     = facebookUser.LastName,
                Email        = facebookUser.Email,
                Password     = null,
                PasswordSalt = null,
                FacebookUser = true,
                Active       = true,
                Blocked      = false,
                ImageId      = null,
                CreatedAt    = DateTime.Now
            };
            await _appDbContext.Users.AddAsync(user, CancellationToken.None);

            return(user);
        }
Ejemplo n.º 3
0
        public async Task <FacebookLoginResponse> GetUserFromFacebookAsync(string facebookToken)
        {
            var result = await GetAsync <dynamic>(facebookToken, "me",
                                                  "fields=id,first_name,last_name,email,picture.width(100).height(100)");

            if (result == null)
            {
                throw new Exception("User from this token not exist");
            }

            var user = new FacebookLoginResponse()
            {
                Id        = result.id,
                FirstName = result.first_name,
                LastName  = result.last_name,
                Email     = result.email,
                Picture   = result.picture.data.url
            };

            return(user);
        }