Example #1
0
        public async Task <IActionResult> Login([FromBody] LoginViewModel info)
        {
            //info.userName = System.Net.WebUtility.UrlDecode(info.userName);
            //info.password = System.Net.WebUtility.UrlDecode(info.password);

            var user = await _userManager.FindByNameAsync(info.userName);

            if (user != null && await _userManager.CheckPasswordAsync(user, info.password))
            {
                var roles = await _userManager.GetRolesAsync(user);

                LoggedInUserInfo userInfo = new LoggedInUserInfo();
                userInfo.UserID    = user.Id;
                userInfo.FirstName = user.FirstName;
                userInfo.LastName  = user.LastName;
                userInfo.UserName  = user.UserName;
                userInfo.Role      = roles.FirstOrDefault();
                var success = new SuccessfulLoginResponse {
                    Token = Jwt.GetTokenFor(user.Id.ToString(), roles.FirstOrDefault()), User = userInfo
                };
                var response = new LoginResponseViewModel();
                response.successResonse = success;
                return(Ok(response));
            }
            else
            {
                var response = new LoginResponseViewModel();
                response.failedResponse = new FailedLoginResponse {
                    Error = 1007
                };
                return(UnauthorizedError(response));
            }
        }
Example #2
0
        public SuccessfulLoginResponse ApiSignIn(string email, string password)
        {
            SuccessfulLoginResponse output = null;
            var user         = usersDAL.GetUser(email);
            var hashProvider = new HashProvider();

            if (user != null && hashProvider.VerifyPasswordMatch(user.Password, password, user.Salt))
            {
                if (IsUserSignedIn(user))
                {
                    RemoveUser(user);
                }

                string newAccessToken = GenerateAccessToken();
                loggedInUsers.Add(newAccessToken, user);
                output = new SuccessfulLoginResponse(user, newAccessToken);
            }

            return(output);
        }