Пример #1
0
        public BaseResponseModel SignUp(SignUpInputModel inputModel)
        {
            var vm = new AuthResponseModel();

            // Validate request
            var validationState = new ValidationDictionary();
            inputModel.ValidateRequest(validationState);

            var user = new User
                {
                    Email = inputModel.Email,
                    Role = Role.Member
                };
            UserService.GenerateUserPassword(user, inputModel.Password);

            if (UserService.ValidateUser(user, validationState))
            {
                UserService.CreateUser(user);

                // Authenticate to create token
                user = UserService.Authenticate(user.Email, inputModel.Password);
                _auth.DoAuth(user.Email, false);

                vm.Success = true;
                vm.Token = user.AuthToken.Token;
                vm.Expires = user.AuthToken.Expires;
            }

            vm.Errors = validationState.Errors;
            return vm;
        }
Пример #2
0
        public BaseResponseModel SignIn(SignInInputModel inputModel)
        {
            var vm = new AuthResponseModel();
            var user = UserService.Authenticate(inputModel.Email, inputModel.Password);
            if (user != null)
            {
                _auth.DoAuth(inputModel.Email, inputModel.RememberMe);
                vm.Success = true;
                vm.Token = user.AuthToken.Token;
                vm.Expires = user.AuthToken.Expires;
            } else
            {
                vm.Errors.Add("Invalid email or password");

                LogService.CreateLog(new Log
                {
                    Category = LogCategory.Security,
                    IpAddress = GetClientIp(ControllerContext.Request),
                    Level = LogLevel.Info,
                    Message = "Authentication failed using email: " + inputModel.Email
                });
            }

            return vm;
        }