public static async Task AttemptLogin(Player player, string user, string pass) { vPlayer p = (vPlayer)player; int id; string username; string passhash = ""; var results = await database.Query("SELECT * FROM users WHERE username = '******'"); id = results[0]["id"]; username = results[0]["username"]; passhash = results[0]["password"]; bool correct = await Bcrypt.Verify(pass, passhash); if (correct) { p.accountID = id; p.loadPlayerData(results[0]["money"], results[0]["skin"], results[0]["bank"], results[0]["staff_level"], results[0]["dim"], results[0]["int"], results[0]["x"], results[0]["y"], results[0]["z"], results[0]["rot"], results[0]["job"]); ChatBox.WriteLine("Welcome " + user, player, Slipe.Shared.Utilities.Color.Green); } else { ChatBox.WriteLine("Wrong login info.", player, Slipe.Shared.Utilities.Color.Red); Slipe.MtaDefinitions.MtaServer.KickPlayer(player.MTAElement, "Xoa", "Invalid login info"); } }
private async void HandleLogin(Player source, LoginRpc rpc) { var result = await database.Query("SELECT * FROM `users` WHERE username = ?", rpc.Username); if (result.Length == 0) { RpcManager.Instance.TriggerRPC(source, "Login.Error", new ErrorRpc("These credentials do not match our records.")); return; } var userData = result[0]; string passwordHash = userData["password"]; if (!await Bcrypt.Verify(rpc.Password, passwordHash)) { RpcManager.Instance.TriggerRPC(source, "Login.Error", new ErrorRpc("These credentials do not match our records.")); return; } RpcManager.Instance.TriggerRPC(source, "Login.Success", new EmptyRpc()); }
public async Task <IActionResult> Login([FromBody] LoginModelDTO loginModelDTO) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var repository = new AuthenticationRepository(this.context); //Utilisateur userFound = repository.GetUtilisateurs().FirstOrDefault(u => u.Username == loginModelDTO.Username && u.MotDePasse == loginModelDTO.Password); Utilisateur userFound = repository.GetUtilisateurs().FirstOrDefault(u => u.Username == loginModelDTO.Username && Bcrypt.Verify(loginModelDTO.Password, u.MotDePasse)); if (userFound == null) { return(Unauthorized()); } var claims = new List <Claim> { new Claim(JwtRegisteredClaimNames.Sub, userFound.Username), new Claim(JwtRegisteredClaimNames.Jti, await _jwtOptions.JtiGenerator()), new Claim(JwtRegisteredClaimNames.Iat, ToUnixEpochDate(_jwtOptions.IssuedAt).ToString(), ClaimValueTypes.Integer64), new Claim(PrivateClaims.UserId, userFound.Id.ToString()) }; //ADD role if (userFound.UtilisateurRole != null) { userFound.UtilisateurRole.ToList().ForEach(u => claims.Add(new Claim("roles", u.IdRoleNavigation.Nom))); } JwtSecurityToken token = new JwtSecurityToken( issuer: _jwtOptions.Issuer, audience: _jwtOptions.Audience, claims: claims, notBefore: _jwtOptions.NotBefore, expires: _jwtOptions.Expiration, signingCredentials: _jwtOptions.SigningCredentials ); var encodedJwt = new JwtSecurityTokenHandler().WriteToken(token); var response = new{ access_token = encodedJwt, expires_in = (int)_jwtOptions.ValidFor.TotalSeconds, }; return(Ok(response)); }