Esempio n. 1
0
        private static void SetDBManaUserToken(string token, string mobile, string storeId, string storeName, int xcGameUserId)
        {
            IUserTokenService userTokenService = BLLContainer.Resolve <IUserTokenService>();
            var model = userTokenService.GetModels(p => p.StoreId.Equals(storeId) & p.Mobile.Equals(mobile)).FirstOrDefault <t_usertoken>();

            if (model == null)
            {
                t_usertoken userToken = new t_usertoken();
                userToken.Token        = token;
                userToken.Mobile       = mobile;
                userToken.StoreId      = storeId;
                userToken.StoreName    = storeName;
                userToken.CreateTime   = DateTime.Now;
                userToken.XCGameUserId = xcGameUserId;
                userTokenService.Add(userToken);
            }
            else
            {
                model.Token        = token;
                model.Mobile       = mobile;
                model.StoreId      = storeId;
                model.StoreName    = storeName;
                model.UpdateTime   = DateTime.Now;
                model.XCGameUserId = xcGameUserId;
                userTokenService.Update(model);
            }
        }
Esempio n. 2
0
        public ApiResponseModel <LoginResponseModel> Login([FromBody] LoginRequestModel requestModel)
        {
            ApiResponseModel <LoginResponseModel> responseModel = new ApiResponseModel <LoginResponseModel>();
            var user = _userService.GetByUsernameAndPassword(requestModel.Username, requestModel.Password);

            if (user == null)
            {
                responseModel.ResultStatusCode    = ResultStatusCodeStatic.Error;
                responseModel.ResultStatusMessage = "User Not Be Found";
                return(responseModel);
            }

            // portal api'de token üretilecek, token tablosuna kaydedilecek ve api'de dönülen kullanıcı bilgileri ve token bilgisi geri dönülecek
            UserToken userToken = new UserToken();

            userToken.IsValid        = true;
            userToken.ProfileId      = user.ProfileId;
            userToken.Token          = Guid.NewGuid().ToString();
            userToken.Username       = user.UserName;
            userToken.ValidBeginDate = DateTime.Now;
            userToken.ValidEndDate   = userToken.ValidBeginDate.AddHours(6); //6 saat gecerlilik verdik default olarak

            int resultAddToken = _userTokenService.Add(userToken);

            if (resultAddToken <= 0)
            {
                responseModel.ResultStatusCode    = ResultStatusCodeStatic.Error;
                responseModel.ResultStatusMessage = "User Token Could Not Be Saved";
                return(responseModel);
            }
            LoginResponseModel loginResponse = new LoginResponseModel()
            {
                Id       = user.Id,
                UserName = user.UserName,
                // Password = user.Password,//apiden password dönülmemeli
                Name      = user.Name,
                Surname   = user.Surname,
                Mail      = user.Mail,
                ProfileId = user.ProfileId,
                IsDeleted = user.IsDeleted,
                UserToken = userToken.Token,
            };

            responseModel.ResultStatusCode    = ResultStatusCodeStatic.Success;
            responseModel.ResultStatusMessage = "Success";
            responseModel.Data = loginResponse;
            return(responseModel);
        }
Esempio n. 3
0
        public async Task <ActionResult> Register(UserAddRequest model)
        {
            ObjectResult result = null;

            try
            {
                int id = _userService.Create(model);

                Guid guid = Guid.NewGuid();

                _userTokenService.Add(id, guid);

                EmailAddRequest emailBase = new EmailAddRequest();
                emailBase.From = model.Email;
                string email       = emailBase.From;
                string directory   = Environment.CurrentDirectory;
                string path        = Path.Combine(directory, "EmailTemplates\\ConfirmEmail.html");
                string htmlContent = System.IO.File.ReadAllText(path);
                await _service.ConfirmEmail(email, htmlContent, _sendGridConfig.Secret, _sendGridConfig.Email, guid);

                ItemResponse <int> response = new ItemResponse <int>()
                {
                    Item = id
                };

                result = Created201(response);
            }
            catch (Exception ex)
            {
                base.Logger.LogError(ex.ToString());

                ErrorResponse response = new ErrorResponse(ex.Message);

                result = StatusCode(500, response);
            }
            return(result);
        }
        public UserToken Login(AccountLoginRequst loginInfo, HttpContext httpContext, IConfiguration config)
        {
            if (loginInfo.MobileNumber == null || loginInfo.SmsKey == null)
            {
                throw new CustomException("اطلاعات وارد شده معتبر نیست", ErrorsPreFix.AUTH_HELPER + ERROR_LOGIN + "00");
            }

            var uniqueKey = _userService.GetUserUniqueKey(loginInfo.MobileNumber, httpContext.Request.Headers["User-Agent"]);

            _onlineUserService.Logout(uniqueKey);

            var user = _userService.GetAllIncluding(u => u.Role).FirstOrDefault(u => u.MobileNumber == loginInfo.MobileNumber);

            if (user == null || user.Id == 0)
            {
                var newUser = new User()
                {
                    CreatedByUserId = 1,
                    MobileNumber    = loginInfo.MobileNumber,
                    Status          = (int)UserStatus.Active,
                    Role            = _roleService.Find(r => r.Name.ToLower() == "tester").Data,
                    RefreshToken    = new Guid().ToString()
                };

                _userService.Add(newUser, 1);
                user = newUser;
            }

            var sms = _smsService.FindBy(s => s.Reciver == user.MobileNumber)
                      .Data.OrderByDescending(s => s.SendDate)
                      .FirstOrDefault();

            if (sms == null)
            {
                throw new CustomException("کدی برای کاربر ارسال نشده", ErrorsPreFix.AUTH_HELPER + ERROR_LOGIN + "02");
            }

            if (sms.Status != (int)SmsStatus.Success)
            {
                throw new CustomException("کد قبلا استفاده شده", ErrorsPreFix.AUTH_HELPER + ERROR_LOGIN + "03");
            }

            if (loginInfo.SmsKey != sms.Key)
            {
                throw new CustomException("کد دریافت شده معتبر نمی باشد",
                                          ErrorsPreFix.AUTH_HELPER + ERROR_LOGIN + "04");
            }

            sms.Status = (int)SmsStatus.Used;
            _smsService.Update(sms, user.Id);

            var userToken = GenerateJsonWebToken(uniqueKey, config, user, loginInfo.RememberMe);

            userToken.Status = (int)UserTokenStatus.Created;
            userToken.User   = user;
            _userTokenService.Add(userToken, user.Id);

//            _onlineUserService.AddUser(uniqueKey, userToken);

            return(userToken);
        }