Modify Login-Register-System

This commit is contained in:
VegaZ
2018-09-19 21:20:45 +02:00
parent 9ec0a30988
commit 3da8e4ec3a
5 changed files with 66 additions and 128 deletions

View File

@@ -1,15 +1,13 @@
<!-- <!--
* @overview Life of German Reallife - Login Login login.html * @overview Life of German Reallife - Login Login login.html
* @author Orangebox, VegaZ * @author Orangebox, hydrant, VegaZ
* @copyright (c) 2008 - 2018 Life of German * @copyright (c) 2008 - 2018 Life of German
*--> *-->
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<link rel="stylesheet" href="style.css" /> <link rel="stylesheet" href="style.css" />
<script src="Dependences/jquery-3.3.1.min.js"></script>
<script src="Dependences/bootstrap-3.3.7/js/bootstrap.min.js"></script>
</head> </head>
<body> <body>
@@ -22,7 +20,7 @@
<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">Erstellen</button><br /><br /> <button id="registerBtn">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>
@@ -34,63 +32,8 @@
</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>
$(document).ready(function () {
resourceCall("RequestDisplayname");
});
$('.message a').click(function () {
$('.form-l').animate({ height: "toggle", opacity: "toggle" }, "slow");
});
$('#registerBtn').click(function () {
var password = $('#passwordInputRegister').val();
var passwordRepeat = $('#passwordRepeatInputRegister').val();
if (password === "" || passwordRepeat === "") {
showError("Mindestens ein Passwort Feld ist leer!");
return;
}
if (password !== passwordRepeat) {
showError("Die beiden Passwörter stimmen nicht überein!")
return;
}
if (password.length < 8 || passwordRepeat.length < 8) {
showError("Das Passwort muss mindestens 8 Zeichen lang sein");
return;
}
resourceCall("Register", password, passwordRepeat);
});
$('#loginBtn').click(function () {
var password = $('#passwordInputLogin').val();
if (password === "") {
showError("Du musst ein Passwort angeben!");
return;
}
resourceCall("Login", password);
});
$('.quitBtn').click(function () {
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,18 +4,57 @@
* @copyright (c) 2008 - 2018 Life of German * @copyright (c) 2008 - 2018 Life of German
*/ */
$('#loginBtn').click(() => {
$('.alert').remove(); //Remove any alerts when we attempt to login/register $('.message a').click(function () {
mp.trigger('loginInformationToServer', $('#passwordInputLogin').val()); $('.form-l').animate({ height: "toggle", opacity: "toggle" }, "slow");
}); });
$('#registerBtn').click(() => { $('#registerBtn').click(function () {
$('.alert').remove(); //Remove any alerts when we attempt to login/register
if ($('#passwordInputRegister').val().length < 8) { var password = $('#passwordInputRegister').val();
var passwordRepeat = $('#passwordRepeatInputRegister').val();
mp.gui.chat.push(password.length);
if (password === "" || passwordRepeat === "") {
showError("Mindestens ein Passwort Feld ist leer!");
return; return;
} }
else {
mp.trigger('registerInformationToServer', $('#passwordInputRegister').val()); if (password !== passwordRepeat) {
showError("Die beiden Passwörter stimmen nicht überein!")
return;
} }
}); if (password.length < 8) {
showError("Das Passwort muss mindestens 8 Zeichen lang sein");
return;
}
mp.gui.chat.push(password.length);
mp.trigger('registerInformationToServer', password);
});
$('#loginBtn').click(function () {
var password = $('#passwordInputLogin').val();
if (password === "") {
showError("Du musst ein Passwort angeben!");
return;
}
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

@@ -6,34 +6,29 @@
let loginBrowser; let loginBrowser;
mp.events.add('loginInformationToServer', (username, password) => { mp.events.add('loginInformationToServer', (password) => {
mp.events.callRemote('OnPlayerLogin', username, password); mp.events.callRemote('OnPlayerLogin', password);
}); });
mp.events.add('registerInformationToServer', (username, password) => { mp.events.add('registerInformationToServer', (password) => {
mp.gui.chat.push("registerInformationToServer called");
mp.events.callRemote('OnPlayerRegister', username, password); mp.events.callRemote('OnPlayerRegister', password);
}); });
/*
mp.events.add('browserCreated', (browser) => {
mp.gui.chat.push("Browser created");
mp.gui.chat.activate(false);
mp.gui.cursor.show(true);
});
*/
mp.events.add('showLogin', (player) => { mp.events.add('showLogin', (player) => {
mp.gui.chat.push("show login");
loginBrowser = mp.browsers.new('package://Login/login.html'); loginBrowser = mp.browsers.new('package://Login/login.html');
mp.gui.cursor.show(true);
mp.gui.cursor.visible = true;
}); });
mp.events.add('registerSuccess', (player) => { mp.events.add('registerSuccess', (player) => {
loginBrowser.destroy(); loginBrowser.destroy();
mp.gui.chat.activate(true); mp.gui.chat.activate(true);
player.outputChatBox("Erfolgreich registriert"); mp.gui.cursor.show(false);
mp.gui.cursor.visible = false;
mp.gui.chat.push("Erfolgreich registriert.");
}); });

View File

@@ -2,7 +2,6 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using GTANetworkAPI; using GTANetworkAPI;
using System.Security.Cryptography;
/** /**
* @overview Life of German Reallife - Event Login (Login.cs) * @overview Life of German Reallife - Event Login (Login.cs)
@@ -22,39 +21,19 @@ namespace reallife_gamemode.Server.Events
[Command("login")] [Command("login")]
public void CmdLogin(Client player) public void CmdLogin(Client player)
{ {
player.Freeze(true);
player.TriggerEvent("showLogin",player); player.TriggerEvent("showLogin",player);
} }
[RemoteEvent("OnPlayerRegister")] [RemoteEvent("OnPlayerRegister")]
public void OnPlayerRegister(Client player, string password) public void OnPlayerRegister(Client player, string password)
{ {
using (var loginContext = new Model.DatabaseContext()) using (var loginContext = new Model.DatabaseContext())
{ {
var user = new Entities.User { Name = player.Name, SocialClubName = player.SocialClubName, Password = ComputeSha256Hash(password) }; var user = new Entities.User { Name = player.Name, SocialClubName = player.SocialClubName, Password = NAPI.Util.GetHashSha256(password) };
loginContext.Users.Add(user); loginContext.Users.Add(user);
loginContext.SaveChanges(); loginContext.SaveChanges();
} }
NAPI.Chat.SendChatMessageToPlayer(player, "Registriert, GZ");
player.TriggerEvent("registerSuccess"); player.TriggerEvent("registerSuccess");
} }
static string ComputeSha256Hash(string rawData)
{
// Create a SHA256
using (SHA256 sha256Hash = SHA256.Create())
{
// ComputeHash - returns byte array
byte[] bytes = sha256Hash.ComputeHash(Encoding.UTF8.GetBytes(rawData));
// Convert byte array to a string
StringBuilder builder = new StringBuilder();
for (int i = 0; i < bytes.Length; i++)
{
builder.Append(bytes[i].ToString("x2"));
}
return builder.ToString();
}
}
} }
} }

View File

@@ -1,18 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
/**
* @overview Life of German Reallife - Event Login (Login.cs)
* @author VegaZ
* @copyright (c) 2008 - 2018 Life of German
*/
namespace reallife_gamemode.Server.Services
{
class HashService
{
}
}