Esempio n. 1
0
        public async Task <IActionResult> Authenticate([FromBody] LoginViewModel model)
        {
            string          token = "";
            ApplicationUser user  = await _userManager.FindByEmailAsync(model.email);

            if ((user != null))
            {
                if (user.EmailConfirmed == true)
                {
                    var result = await _signInManager.PasswordSignInAsync(model.email, model.password, model.RememberMe, lockoutOnFailure : false);

                    if (result.Succeeded)
                    {
                        token = IdentityUtil.generateJwtToken(user, _appSettings.Secret);

                        var authenticationResultDto = new AuthenticationResultDTO
                        {
                            Status          = "success",
                            ResponseCode    = "00",
                            ResponseMessage = "User Authenticated",
                            Email           = model.email,
                            Token           = token
                        };

                        return(Ok(authenticationResultDto));
                    }
                    else
                    {
                        var authenticationResultDto = new AuthenticationResultDTO
                        {
                            Status          = "failed",
                            ResponseCode    = "01",
                            ResponseMessage = "Invalid Credential",
                            Email           = model.email,
                            Token           = null
                        };

                        return(BadRequest(authenticationResultDto));
                    }
                }
            }
            var data = new
            {
                status = "fail, user does not exist",
                user   = "",
                token  = ""
            };

            return(new JsonResult(data));
        }
Esempio n. 2
0
        public async Task <LoginResultDTO> LoginAsync(string email, string password, bool rememberMe)
        {
            string token = "";

            ApplicationUser user = await _userManager.FindByEmailAsync(email);

            if (user != null)
            {
                var result = await _signInManager.PasswordSignInAsync(email, password, rememberMe, lockoutOnFailure : false);

                if (result.Succeeded)
                {
                    string secret = _appSettings.Secret;
                    token = IdentityUtil.generateJwtToken(user, secret);

                    UserSignInResultDTO customerResult = new UserSignInResultDTO
                    {
                        firstname = user.FirstName,
                        lastname  = user.LastName,
                        email     = user.Email,
                        phone     = user.PhoneNumber,
                        token     = token
                    };

                    LoginResultDTO loginResultDTO = new LoginResultDTO
                    {
                        Status           = "success",
                        ResponseCode     = "00",
                        ResponseMessage  = "Sign in Successfully",
                        UserSignInResult = customerResult,
                        ErrorList        = null
                    };

                    return(loginResultDTO);
                }
                else
                {
                    LoginResultDTO loginResultDTO = new LoginResultDTO
                    {
                        Status           = "fail",
                        ResponseCode     = "01",
                        ResponseMessage  = "Invalid Credentials",
                        UserSignInResult = null,
                        ErrorList        = null
                    };

                    return(loginResultDTO);
                }
            }
            else
            {
                LoginResultDTO loginResultDTO = new LoginResultDTO
                {
                    Status           = "fail",
                    ResponseCode     = "01",
                    ResponseMessage  = "User does not exist",
                    UserSignInResult = null,
                    ErrorList        = null
                };

                return(loginResultDTO);
            }
        }
Esempio n. 3
0
        public async Task <RegistrationResultDTO> RegisterAsync(
            string email, string password, bool rememberMe, string lastname, string firstname, string phonenumber)
        {
            var isAccountExisting = await this.VerifyAccountExist(email);

            if (isAccountExisting)
            {
                RegistrationResultDTO registrationResultDTO = new RegistrationResultDTO
                {
                    Status           = "fail",
                    ResponseCode     = "01",
                    ResponseMessage  = "User registration failed. User already exists",
                    UserSignInResult = null,
                    ErrorList        = null
                };

                return(registrationResultDTO);
            }

            ApplicationUser user = new ApplicationUser();

            user.UserName       = email;
            user.Email          = email;
            user.FirstName      = firstname;
            user.LastName       = lastname;
            user.EmailConfirmed = true;
            user.PhoneNumber    = phonenumber;
            IdentityResult result = _userManager.CreateAsync(user, password).Result;

            if (result.Succeeded)
            {
                UserSignInResultDTO userSignInResult = new UserSignInResultDTO
                {
                    firstname = firstname,
                    lastname  = lastname,
                    email     = email,
                    phone     = phonenumber
                };

                _userManager.AddToRoleAsync(user, "Customer").Wait();

                var signInResult = await _signInManager.PasswordSignInAsync(email, password, rememberMe, lockoutOnFailure : false);

                if (signInResult.Succeeded)
                {
                    string secret = _appSettings.Secret;
                    string token  = IdentityUtil.generateJwtToken(user, secret);

                    userSignInResult.token = token;

                    RegistrationResultDTO registrationResultDTO = new RegistrationResultDTO
                    {
                        Status           = "success",
                        ResponseCode     = "00",
                        ResponseMessage  = "User registered successfully",
                        UserSignInResult = userSignInResult,
                        ErrorList        = null
                    };

                    return(registrationResultDTO);
                }
                else
                {
                    RegistrationResultDTO registrationResultDTO = new RegistrationResultDTO
                    {
                        Status           = "success",
                        ResponseCode     = "00",
                        ResponseMessage  = "User Registration Successful. Login to retrieve token",
                        UserSignInResult = userSignInResult,
                        ErrorList        = null
                    };

                    return(registrationResultDTO);
                }
            }
            else
            {
                RegistrationResultDTO registrationResultDTO = new RegistrationResultDTO
                {
                    Status           = "fail",
                    ResponseCode     = "01",
                    ResponseMessage  = "User Registration Failed. Please try again later",
                    UserSignInResult = null,
                    ErrorList        = null
                };

                return(registrationResultDTO);
            }
        }