Example #1
0
        public async Task <NewExternalUserViewModel> GetUserViewModelUserFromGoogleToken(string googleIdToken)
        {
            var googleTokenSettings = new GoogleJsonWebSignature.ValidationSettings()
            {
                Audience = new List <string>()
                {
                    "680869894998-hujg19vbq0lhmhc8vf8ldmc1dnepvrti.apps.googleusercontent.com"
                }
            };

            try
            {
                var validToken = await GoogleJsonWebSignature.ValidateAsync(googleIdToken, googleTokenSettings);

                var user = new NewExternalUserViewModel()
                {
                    AuthenticationTypeId = (int)AuthenticationType.GoogleApi,
                    Email     = validToken.Email,
                    FirstName = validToken.Name,
                    LastName  = validToken.GivenName,
                    Password  = GenerateRandomPasswordForSocialUser(),
                    Username  = validToken.Email
                };
                return(user);
            }
            catch (InvalidJwtException ex)
            {
                Console.WriteLine(ex.Message + ex.StackTrace);
                throw;
            }
        }
Example #2
0
        public async Task <UserViewModel> RegisterNewExternalUser(NewExternalUserViewModel newExternalUserViewModel)
        {
            CreatePasswordHash(newExternalUserViewModel.Password, out var userPasswordHash, out var userPasswordSalt);
            var newUser = await _userRepository.AddUser(newExternalUserViewModel.Username, newExternalUserViewModel.FirstName,
                                                        newExternalUserViewModel.LastName, newExternalUserViewModel.Email, userPasswordHash, userPasswordSalt, newExternalUserViewModel.AuthenticationTypeId);

            var mappedUser = _mapper.Map <UserViewModel>(newUser);

            return(mappedUser);
        }