Hallo zusammen,
mittlerweile besitze ich eine eigene API die gewisse Daten aus meinem Forum abruft und diese als JSON Ausgabe wiedergibt. Das ganze schaut so aus.
Code
		
			https://www.meinedomain.de/index.php?user-api&method=login&username=Meinusername&password=MeinPassword&secret=MeinSecretKeyAls Ausgabe bekomme ich folgendes.
Brainfuck
		
					
			status	200
data	
userID	1
wscApiId	0
username	"Dr.West"
email	"webmaster@afd.de"
options	
userID	1
userOption1	""
userOption2	""
userOption3	1
userOption4	"0"
userOption5	""
userOption6	""
userOption7	""
userOption8	""
userOption9	""
userOption10	null
userOption11	null
userOption12	""
userOption13	""
userOption14	1
userOption15	"Europe/Berlin"
userOption16	1
userOption17	1
userOption18	"0"
userOption19	"0"
userOption20	"0"
userOption21	"3"
userOption22	"1"
userOption23	1
userOption24	"1"
userOption25	"0"
userOption26	"0"
userOption27	"0"
userOption28	"0"
userOption29	"0"
userOption30	1
userOption31	1
groups	
0	
groupID	1
groupName	"Jeder"
groupType	1
1	
groupID	3
groupName	"Registrierte Benutzer"
groupType	3
2	
groupID	4
groupName	"Administratoren"
groupType	9
3	
groupID	6
groupName	"Bürger"
groupType	4
Das ganze würde ich gerne in meinem Script umgesetzt haben, wie aber genau muss das umgesetzt werden?
Code
		
					
			mp.events.add("sendDataToServer", (player, user, pass, state) => {
    let loggedAccount = mp.players.toArray().find(p => p.loggedInAs == username);
    switch(state){
        //Account Login
        case 0:
        {
            if(loggedAccount){
                console.log("Logged in already.");
                player.call("loginHandler", ["logged"]);
            } else {
                gm.mysql.handle.query('SELECT `password` FROM `accounts` WHERE `username` = ?', [username], function(err, res){
                    if(res.length > 0){
                        let sqlPassword = res[0]["password"];
                        bcrypt.compare(pass, sqlPassword, function(err, res2) {
                            if(res2 === true){
                                player.name = username;
                                player.call("loginHandler", ["success"]);
                                gm.auth.loadAccount(player);
                            } else {
                                player.call("loginHandler", ["incorrectinfo"]);
                            }
                        });
                    } else {
                        player.call("loginHandler", ["incorrectinfo"]);
                    }
                });
            }
            break;
        }
        //Account Registration
        case 1:
        {
            if(username.length >= 3 && pass.length >= 5){
                gm.mysql.handle.query('SELECT * FROM `accounts` WHERE `username` = ?', [username], function(err, res){
                    if(res.length > 0){
                        player.call("loginHandler", ["takeninfo"]);
                    } else {
                        bcrypt.hash(pass, function(err, hash) {
                            if(!err){
                                gm.mysql.handle.query('INSERT INTO `accounts` SET username = ?, password = ?', [username, hash], function(err, res){
                                    if(!err){
                                        player.name = username;
                                        console.log("\x1b[92m" + username + "\x1b[39m has just registered.");
                                    } else {
                                        console.log("\x1b[31m[ERROR] " + err)
                                    }
                                });
                            } else {
                                console.log("\x1b[31m[BCrypt]: " + err)
                            }
                        });
                    }
                });
            } else {
                player.call("loginHandler", ["tooshort"]);
            }            
            break;
        }
        default:
        {
            player.outputChatBox("An error has occured, please contact your server administrator.")
            console.log("\x1b[31m[ERROR] Login/Register state was one that isn't defined. State: " + state)
            break;
        }
    }
});Meine Testfunktion scheint hier komplett falsch zu sein oder?
Code
		
					
			function getTestPersonaLoginCredentials(callback) {
    return http.get({
        host: 'personatestuser.org',
        path: '/email',
        headers: { 'User-Agent': 'Projekt Reallife Agent 1.0.0' }
    }, function(response) {
        // Continuously update stream with data
        var body = '';
        response.on('data', function(d) {
            body += d;
        });
        response.on('end', function() {
            // Data reception is done, do whatever with it!
            var parsed = JSON.parse(body);
            callback({
                email: parsed.email,
                password: parsed.pass
            });
        });
    });
}Ich möchte halt anstelle aus der Datenbank den USer aus dem Forum abfragen und wenn der User in der Bürger gruppe ist (ID 4), dann darf er einloggen und der Server sagt ok!
 
		 
		
		
	 
			
									
		


