Modify Login/Register-System (almost working)

This commit is contained in:
VegaZ
2018-09-20 18:35:50 +02:00
parent 6843462525
commit db9fd60384
4 changed files with 94 additions and 53 deletions

View File

@@ -7,6 +7,10 @@
<html> <html>
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<link rel="stylesheet" href="Dependences/bootstrap-3.3.7/css/bootstrap.min.css">
<script src="Dependences/jquery-3.3.1.min.js"></script>
<script src="Dependences/bootstrap-3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="style.css" /> <link rel="stylesheet" href="style.css" />
</head> </head>
@@ -20,20 +24,36 @@
<div class="register-form form-l"> <div class="register-form form-l">
<input type="password" placeholder="Passwort" id="passwordInputRegister" /> <input type="password" placeholder="Passwort" id="passwordInputRegister" />
<input type="password" placeholder="Passwort wiederholen" id="passwordRepeatInputRegister" /> <input type="password" placeholder="Passwort wiederholen" id="passwordRepeatInputRegister" />
<button id="registerBtn">Registrieren</button><br /><br /> <button id="registerBtn" onclick="registerPlayer()";>Registrieren</button><br /><br />
<button class="quitBtn">Server verlassen</button> <button class="quitBtn">Server verlassen</button>
<p class="message">Bereits registriert? <a href="#">Logg dich ein</a></p> <p class="message">Bereits registriert? <a href="#">Logg dich ein</a></p>
</div> </div>
<div class="login-form form-l"> <div class="login-form form-l">
<input type="password" placeholder="Passwort" id="passwordInputLogin" /> <input type="password" placeholder="Passwort" id="passwordInputLogin" />
<button id="loginBtn">Einloggen</button><br /><br /> <button id="loginBtn" onclick="loginPlayer()">Einloggen</button><br /><br />
<button class="quitBtn">Server verlassen</button> <button class="quitBtn">Server verlassen</button>
<p class="message">Nicht registriert? <a href="#">Erstelle einen Account</a></p> <p class="message">Nicht registriert? <a href="#">Erstelle einen Account</a></p>
</div> </div>
</div> </div>
</div> </div>
<script src="Dependences/jquery-3.3.1.min.js"></script> <script type="text/javascript">
<script src="Dependences/bootstrap-3.3.7/js/bootstrap.min.js"></script> $(".message a").click(function () {
$(".form-l").animate({ height: "toggle", opacity: "toggle" }, "slow");
});
$(".quitBtn").click(() => {
resourceCall("Quit");
});
function showError(error) {
$(".isa_error").html(error);
$(".isa_error").slideDown();
}
function SendDisplayname(name) {
$("h2#playerName").text(name);
}
</script>
<script src="login.js" type="text/javascript"></script> <script src="login.js" type="text/javascript"></script>
</body> </body>
</html> </html>

View File

@@ -4,16 +4,11 @@
* @copyright (c) 2008 - 2018 Life of German * @copyright (c) 2008 - 2018 Life of German
*/ */
function registerPlayer() {
$('.message a').click(function () { var password = document.getElementById("passwordInputRegister");
$('.form-l').animate({ height: "toggle", opacity: "toggle" }, "slow"); var passwordRepeat = document.getElementById("passwordRepeatInputRegister");
});
$('#registerBtn').click(function () {
var password = $('#passwordInputRegister').val();
var passwordRepeat = $('#passwordRepeatInputRegister').val();
mp.gui.chat.push(password.length);
if(password === "" || passwordRepeat === "") { if(password === "" || passwordRepeat === "") {
showError("Mindestens ein Passwort Feld ist leer!"); showError("Mindestens ein Passwort Feld ist leer!");
return; return;
@@ -28,33 +23,18 @@ $('#registerBtn').click(function () {
showError("Das Passwort muss mindestens 8 Zeichen lang sein"); showError("Das Passwort muss mindestens 8 Zeichen lang sein");
return; return;
} }
$('.isa_error').hide();
mp.trigger("registerInformationToServer", password);
}
mp.gui.chat.push(password.length); function loginPlayer() {
mp.trigger('registerInformationToServer', password);
});
$('#loginBtn').click(function () { let password = document.getElementById("passwordInputLogin");
var password = $('#passwordInputLogin').val();
if (password === "") { if (password === "") {
showError("Du musst ein Passwort angeben!"); showError("Du musst ein Passwort angeben!");
return; return;
} }
$('.isa_error').hide();
mp.trigger('loginInformationToServer', password); mp.trigger("loginInformationToServer", password);
});
$('.quitBtn').click(function () {
resourceCall("Quit");
});
function showError(error) {
$('.isa_error').html(error);
$('.isa_error').slideDown();
}
function SendDisplayname(name) {
$("h2#playerName").text(name);
} }

View File

@@ -4,7 +4,11 @@
* @copyright (c) 2008 - 2018 Life of German * @copyright (c) 2008 - 2018 Life of German
*/ */
let loginBrowser; var loginBrowser;
loginBrowser = mp.browsers.new('package://Login/login.html');
mp.gui.chat.activate(false);
mp.gui.cursor.show(true);
mp.events.add('loginInformationToServer', (password) => { mp.events.add('loginInformationToServer', (password) => {
@@ -13,22 +17,38 @@ mp.events.add('loginInformationToServer', (password) => {
}); });
mp.events.add('registerInformationToServer', (password) => { mp.events.add('registerInformationToServer', (password) => {
mp.gui.chat.push("registerInformationToServer called");
mp.events.callRemote('OnPlayerRegister', password); mp.events.callRemote('OnPlayerRegister', password);
}); });
mp.events.add('showLogin', (player) => { mp.events.add('showLogin',() => {
loginBrowser = mp.browsers.new('package://Login/login.html'); loginBrowser = mp.browsers.new('package://Login/login.html');
mp.gui.cursor.show(true); mp.gui.cursor.show(true);
mp.gui.cursor.visible = true;
}); });
mp.events.add('registerSuccess', (player) => { mp.events.add('registerSuccess', () => {
mp.gui.chat.push("Erfolgreich registriert!")
if (loginBrowser)
{
loginBrowser.destroy(); loginBrowser.destroy();
mp.gui.chat.activate(true); }
mp.gui.cursor.show(false); mp.gui.cursor.show(false);
mp.gui.cursor.visible = false; mp.gui.chat.activate(true);
mp.gui.chat.push("Erfolgreich registriert.");
});
mp.events.add('loginSuccess', () => {
mp.gui.chat.push("Erfolgreich eingeloggt!")
if (loginBrowser)
{
loginBrowser.destroy();
}
mp.gui.cursor.show(false);
mp.gui.chat.activate(true);
});
mp.events.add('loginFail', (reason) => {
mp.gui.chat.push(reason);
}); });

View File

@@ -1,5 +1,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Text; using System.Text;
using GTANetworkAPI; using GTANetworkAPI;
@@ -16,7 +17,27 @@ namespace reallife_gamemode.Server.Events
[RemoteEvent("OnPlayerLogin")] [RemoteEvent("OnPlayerLogin")]
public void OnPlayerLogin(Client player, string password) public void OnPlayerLogin(Client player, string password)
{ {
var checkPassword = "";
using (var loginContext = new Model.DatabaseContext())
{
var user = loginContext.Users.SingleOrDefault(b => b.Name == player.Name);
if(user.Password == null)
{
player.TriggerEvent("loginFail", "Benutzer existiert nicht! Registriere dich zuerst!");
}
else
{
checkPassword = user.Password;
}
}
if(checkPassword == NAPI.Util.GetHashSha256(password))
{
player.TriggerEvent("loginSuccess");
}
else
{
player.TriggerEvent("loginFail","Passwort inkorrekt!");
}
} }
[Command("login")] [Command("login")]
public void CmdLogin(Client player) public void CmdLogin(Client player)
@@ -27,11 +48,11 @@ namespace reallife_gamemode.Server.Events
public void OnPlayerRegister(Client player, string password) public void OnPlayerRegister(Client player, string password)
{ {
using (var loginContext = new Model.DatabaseContext()) using (var registerContext = new Model.DatabaseContext())
{ {
var user = new Entities.User { Name = player.Name, SocialClubName = player.SocialClubName, Password = NAPI.Util.GetHashSha256(password) }; var user = new Entities.User { Name = player.Name, SocialClubName = player.SocialClubName, Password = NAPI.Util.GetHashSha256(password) };
loginContext.Users.Add(user); registerContext.Users.Add(user);
loginContext.SaveChanges(); registerContext.SaveChanges();
} }
player.TriggerEvent("registerSuccess"); player.TriggerEvent("registerSuccess");
} }