コード例 #1
0
        public IActionResult ResendConfirmCode([FromBody] ResendConfirmCodeRequest request)
        {
            var user = UserService.Get(request.UserID);

            if (user == null)
            {
                return(NotFound(new ResponseModel
                {
                    Success = false,
                    Message = "Пользователь не найден"
                }));
            }

            var session = UserSessionService.GetUserActiveSession(user);

            if (session == null)
            {
                return(NotFound(new ResponseModel
                {
                    Success = false,
                    Message = "Сессия не найдена"
                }));
            }

            UserSessionService.CloseUserActiveSession(user);
            session = UserSessionService.CreateSession(user);

            SmscHelper.SendSms(user.PhoneNumber, $"Код для входа: {session.AuthCode}");

            return(Ok(new SignInResponse
            {
                UserID = user.ID
            }));
        }
コード例 #2
0
        public IActionResult SignIn([FromBody] SignInRequest request)
        {
            var user = UserService.FindByPhoneNumber(request.PhoneNumber);

            if (user == null)
            {
                return(NotFound(new ResponseModel
                {
                    Success = false,
                    Message = "Номер телефона не зарегистрирован"
                }));
            }

            if (UserSessionService.GetUserActiveSession(user) != null)
            {
                UserSessionService.CloseUserActiveSession(user);
            }

            var session = UserSessionService.CreateSession(user);

            SmscHelper.SendSms(user.PhoneNumber, $"Код для входа: {session.AuthCode}");

            return(Ok(new SignInResponse
            {
                UserID = user.ID
            }));
        }
コード例 #3
0
        public IActionResult SignInConfirm([FromBody] SignInConfirmRequest request)
        {
            var user = UserService.Get(request.UserID);

            if (user == null)
            {
                return(NotFound(new ResponseModel
                {
                    Success = false,
                    Message = "Пользователь не найден"
                }));
            }

            var session = UserSessionService.GetUserActiveSession(user);

            if (session == null)
            {
                return(NotFound(new ResponseModel
                {
                    Success = false,
                    Message = "Сессия не найдена"
                }));
            }

            if (request.Code != session.AuthCode)
            {
                return(BadRequest(new ResponseModel
                {
                    Success = false,
                    Message = "Неверный код подтверждения"
                }));
            }

            var token = UserSessionService.AuthorizeUser(user);

            return(Ok(new SignInConfirmResponse
            {
                Token = token,
                Role = user.Role
            }));
        }