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); } }
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); }
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); } }