Example #1
0
        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");
            }
        }
Example #2
0
        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());
        }
Example #3
0
        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));
        }