Modify Login-Register-System
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
<!--
|
<!--
|
||||||
* @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>
|
||||||
@@ -8,8 +8,6 @@
|
|||||||
<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>
|
||||||
@@ -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);
|
||||||
|
}
|
||||||
@@ -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.");
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -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,7 +21,6 @@ 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")]
|
||||||
@@ -31,30 +29,11 @@ namespace reallife_gamemode.Server.Events
|
|||||||
|
|
||||||
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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user