Add unfinished Login-System
This commit is contained in:
@@ -20,7 +20,6 @@
|
||||
ERROR TEXT
|
||||
</div>
|
||||
<div class="register-form form-l">
|
||||
<input type="text" placeholder="Benutzername" id="usernameInputRegister" />
|
||||
<input type="password" placeholder="Passwort" id="passwordInputRegister" />
|
||||
<input type="password" placeholder="Passwort wiederholen" id="passwordRepeatInputRegister" />
|
||||
<button id="registerBtn">Erstellen</button><br /><br />
|
||||
@@ -28,7 +27,6 @@
|
||||
<p class="message">Bereits registriert? <a href="#">Logg dich ein</a></p>
|
||||
</div>
|
||||
<div class="login-form form-l">
|
||||
<input type="text" placeholder="Benutzername" id="usernameInputLogin" />
|
||||
<input type="password" placeholder="Passwort" id="passwordInputLogin" />
|
||||
<button id="loginBtn">Einloggen</button><br /><br />
|
||||
<button class="quitBtn">Server verlassen</button>
|
||||
@@ -61,7 +59,7 @@
|
||||
return;
|
||||
}
|
||||
|
||||
if (password.length < 8) {
|
||||
if (password.length < 8 || passwordRepeat.length < 8) {
|
||||
showError("Das Passwort muss mindestens 8 Zeichen lang sein");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -6,10 +6,16 @@
|
||||
|
||||
$('#loginBtn').click(() => {
|
||||
$('.alert').remove(); //Remove any alerts when we attempt to login/register
|
||||
mp.trigger('loginInformationToServer', $('#usernameInputLogin').val(), $('#passwordInputLogin').val());
|
||||
mp.trigger('loginInformationToServer', $('#passwordInputLogin').val());
|
||||
});
|
||||
|
||||
$('#registerBtn').click(() => {
|
||||
$('.alert').remove(); //Remove any alerts when we attempt to login/register
|
||||
mp.trigger('registerInformationToServer', $('#usernameInputRegister').val(), $('#passwordInputRegister').val());
|
||||
if ($('#passwordInputRegister').val().length < 8) {
|
||||
return;
|
||||
}
|
||||
else {
|
||||
mp.trigger('registerInformationToServer', $('#passwordInputRegister').val());
|
||||
}
|
||||
|
||||
});
|
||||
@@ -3,8 +3,8 @@
|
||||
* @author VegaZ
|
||||
* @copyright (c) 2008 - 2018 Life of German
|
||||
*/
|
||||
var loginBrowser = mp.browsers.new('package://Login/login.html');
|
||||
mp.gui.cursor.show(true, true);
|
||||
|
||||
let loginBrowser;
|
||||
|
||||
mp.events.add('loginInformationToServer', (username, password) => {
|
||||
|
||||
@@ -17,3 +17,23 @@ mp.events.add('registerInformationToServer', (username, password) => {
|
||||
mp.events.callRemote('OnPlayerRegister', username, 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.gui.chat.push("show login");
|
||||
loginBrowser = mp.browsers.new('package://Login/login.html');
|
||||
});
|
||||
|
||||
mp.events.add('registerSuccess', (player) => {
|
||||
|
||||
loginBrowser.destroy();
|
||||
mp.gui.chat.activate(true);
|
||||
player.outputChatBox("Erfolgreich registriert");
|
||||
|
||||
});
|
||||
|
||||
@@ -25,7 +25,8 @@ namespace reallife_gamemode.Server.Entities
|
||||
[StringLength(64)]
|
||||
public string Password { get; set; }
|
||||
public int LogUserId { get; set; }
|
||||
public DateTime RegistrationDate { get; set; }
|
||||
[Timestamp]
|
||||
public byte[] RegistrationDate { get; set; }
|
||||
[EmailAddress]
|
||||
[StringLength(64)]
|
||||
public string Email { get; set; }
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using GTANetworkAPI;
|
||||
using System.Security.Cryptography;
|
||||
|
||||
/**
|
||||
* @overview Life of German Reallife - Event Login (Login.cs)
|
||||
@@ -14,15 +15,46 @@ namespace reallife_gamemode.Server.Events
|
||||
public class Login : Script
|
||||
{
|
||||
[RemoteEvent("OnPlayerLogin")]
|
||||
public void OnPlayerLogin(Client player, string username, string password)
|
||||
public void OnPlayerLogin(Client player, string password)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
[Command("login")]
|
||||
public void CmdLogin(Client player)
|
||||
{
|
||||
player.Freeze(true);
|
||||
player.TriggerEvent("showLogin",player);
|
||||
}
|
||||
[RemoteEvent("OnPlayerRegister")]
|
||||
public void OnPlayerRegister(Client player, string username, string password)
|
||||
public void OnPlayerRegister(Client player, string password)
|
||||
{
|
||||
|
||||
using (var loginContext = new Model.DatabaseContext())
|
||||
{
|
||||
var user = new Entities.User { Name = player.Name, SocialClubName = player.SocialClubName, Password = ComputeSha256Hash(password) };
|
||||
loginContext.Users.Add(user);
|
||||
loginContext.SaveChanges();
|
||||
}
|
||||
NAPI.Chat.SendChatMessageToPlayer(player, "Registriert, GZ");
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
18
Server/Services/HashService.cs
Normal file
18
Server/Services/HashService.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
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