예제 #1
0
        public UserDto Authenticate(Google.Apis.Auth.GoogleJsonWebSignature.Payload payload, out int userId)
        {
            User user = _wediumContext.User
                        .FirstOrDefault(x => x.Email == payload.Email);

            if (user == null)
            {
                user = new User()
                {
                    FirstName = payload.GivenName,
                    Email     = payload.Email,
                    LastName  = payload.FamilyName
                };

                _wediumContext.User.Add(user);
                _wediumContext.SaveChanges();
            }

            userId = user.UserId;

            UserDto userDto = UserMapper.ToDto(user);

            userDto.PictureUri = payload.Picture;

            return(userDto);
        }
예제 #2
0
        public async Task <User> Authenticate(Google.Apis.Auth.GoogleJsonWebSignature.Payload payload)
        {
            var user = _usersService.Get(payload.Email);

            if (user == null)
            {
                user = new User
                {
                    Email = payload.Email
                };
                _usersService.Create(user);
            }
            return(user);
        }
예제 #3
0
        private User FindUserOrAdd(Google.Apis.Auth.GoogleJsonWebSignature.Payload payload)
        {
            var u = _context.Users.Where(x => x.Email == payload.Email).FirstOrDefault();

            if (u == null)
            {
                u = new User()
                {
                    Email  = payload.Email,
                    Avatar = payload.Picture,
                };
                _context.Users.Add(u);
                _context.SaveChanges();
            }
            return(u);
        }
예제 #4
0
        private User FindUserOrAdd(Google.Apis.Auth.GoogleJsonWebSignature.Payload payload)
        {
            var u = _users.Where(x => x.email == payload.Email).FirstOrDefault();

            if (u == null)
            {
                u = new User()
                {
                    id           = Guid.NewGuid(),
                    name         = payload.Name,
                    email        = payload.Email,
                    oauthSubject = payload.Subject,
                    oauthIssuer  = payload.Issuer
                };
                _users.Add(u);
            }
            this.PrintUsers();
            return(u);
        }
예제 #5
0
        private User FindUserOrAdd(Google.Apis.Auth.GoogleJsonWebSignature.Payload payload)
        {
            var u = _context.Users.Where(x => x.Email == payload.Email).FirstOrDefault();

            if (u == null)
            {
                u = new User()
                {
                    UserId       = Guid.NewGuid(),
                    Name         = payload.Name,
                    Email        = payload.Email,
                    oauthSubject = payload.Subject,
                    oauthIssuer  = payload.Issuer
                };
                _context.Users.Add(u);
                _context.SaveChanges();
            }
            return(u);
        }
예제 #6
0
        private UserInfo FindUserOrAdd(Google.Apis.Auth.GoogleJsonWebSignature.Payload payload)
        {
            var u = _context.UserInfo.Where(x => x.email == payload.Email).FirstOrDefault();

            if (u == null)
            {
                u = new UserInfo()
                {
                    userId     = Guid.NewGuid(),
                    lastName   = payload.FamilyName,
                    firstName  = payload.GivenName,
                    email      = payload.Email,
                    IsExternal = true,
                    password   = null,
                    isActive   = true,
                    userName   = payload.Name
                };
                _context.UserInfo.Add(u);
            }
            return(u);
        }
예제 #7
0
        public async Task <UserVm> AuthenticateViaGoogleAccount(Google.Apis.Auth.GoogleJsonWebSignature.Payload payload)
        {
            var user = await _userRepository.GetUserByEmail(payload.Email);

            if (user != null)
            {
                return(_mapper.Map <UserVm>(user));
            }
            var userId = await _userRepository.SignUp(new SignUpDto
            {
                Email              = payload.Email,
                ActivationToken    = Guid.NewGuid(),
                FirstName          = payload.GivenName,
                LastName           = payload.FamilyName,
                OAuthSubject       = payload.Subject,
                OAuthIssuer        = payload.Issuer,
                IsExternalAuth     = true,
                ThirdPartyAuthType = ThirdPartyAuthType.Google
            });

            //create user root folder
            await _foldersRepository.CreateFolder(new CreateFolderDto
            {
                Name       = $"User {userId}  root folder",
                UserId     = userId,
                FolderType = FolderType.Private
            });

            return(new UserVm
            {
                Id = userId,
                Email = payload.Email,
                FirstName = payload.GivenName,
                LastName = payload.FamilyName
            });
        }
예제 #8
0
 private bool IsBlogOwnerToken(Google.Apis.Auth.GoogleJsonWebSignature.Payload payload)
 {
     return(payload?.Subject == Settings?.BlogOwnerUserId);
 }
예제 #9
0
        public async Task <User> Authenticate(Google.Apis.Auth.GoogleJsonWebSignature.Payload payload)
        {
            await Task.Delay(1);

            return(this.FindUserOrAdd(payload));
        }
예제 #10
0
 public User Authenticate(Google.Apis.Auth.GoogleJsonWebSignature.Payload payload)
 {
     return(this.FindUserOrAdd(payload));
 }