Exemple #1
0
        public override void OnOperateRequest(byte[] bytes, ClientPeer peer, SendParameters sendParameters)
        {
            Operation.UserInfo userInfo = PackageHelper.Desirialize <Operation.UserInfo>(bytes);
            Model.UserInfo     dbUser   = UserManager.GetByUserName(userInfo.username);

            if (dbUser == null)
            {
                return;
            }

            OperationResponse response = new OperationResponse((byte)OperationCode.Login);

            if (dbUser.Password == userInfo.password)
            {
                response.ReturnCode = (short)ReturnCode.Success;
            }
            else
            {
                response.ReturnCode = (short)ReturnCode.Failed;
            }
            LoginSuccessResponse obj = new LoginSuccessResponse();

            obj.userName = userInfo.username;
            PackageHelper.SetData(response, PackageHelper.Serialize <LoginSuccessResponse>(obj));
            peer.SendOperationResponse(response, sendParameters);

            GameApplication application = GameApplication.Instance as GameApplication;

            if (application != null)
            {
                application.AddClientInfo(peer as GameClientPeer, userInfo.username);
            }
        }
Exemple #2
0
        private async Task <(SignInResult signInResult, LoginSuccessResponse login)> AuthenticateUser(User user, LoginRequest login)
        {
            var signInResult = await _signInManager.PasswordSignInAsync(user, login.Password, false, true);

            if (!signInResult.Succeeded)
            {
                return(signInResult, null);
            }
            var principal = await _signInManager.CreateUserPrincipalAsync(user);

            var jwt          = _tokenFactory.GenerateJwtToken(principal);
            var refreshToken = new RefreshToken
            {
                Id        = _uuidService.GenerateUuId(),
                User      = user.Id,
                Value     = _tokenFactory.GenerateToken(32),
                Location  = login.Location,
                Useragent = login.UserAgent,
                IpAddress = login.IpAddress
            };

            _refreshTokenRepository.Add(refreshToken);
            var res = new LoginSuccessResponse
            {
                RefreshToken = refreshToken.Value,
                Jwt          = jwt
            };

            return(signInResult, res);
        }
Exemple #3
0
    public override void OnOperationResponse(ReturnCode returnCode, byte[] returnData)
    {
        if (returnCode == Operation.ReturnCode.Success)
        {
            LoginSuccessResponse obj = PackageHelper.Desirialize <LoginSuccessResponse>(returnData);
            PhotonEngine.Instance.UserName = obj.userName;
            if (GameStateContext.Instance != null)
            {
                GameStateContext.Instance.UserName = obj.userName;
            }

            EventSystem.Dispatch(EventID.LoginSuccess);
        }
    }