Просмотр исходного кода

most of it is working, need to add token certification

galo 1 год назад
Родитель
Сommit
8eef938643
4 измененных файлов с 24 добавлено и 13 удалено
  1. 5 10
      Auth.gd
  2. 10 0
      Database.gd
  3. 5 0
      loginnetcode.gd
  4. 4 3
      main.tscn

+ 5 - 10
Auth.gd

@@ -36,14 +36,6 @@ remote func RegisterPlayer(username, password, password2, email, salt, requester
 	var message = 'registering...'
 	if password != password2:
 		message = 'passwords are not equal'
-#	if username.length() > 3:
-#		message = 'username must be at least three letters'
-#	if email.find('@') == -1 or email.find('@') == 0:
-#		message = 'email is invalid'
-#	if email.find('gmail') == -1 and email.find('outlook') == -1 and email.find('yahoo') == -1:
-#		message = 'not a supported email provider'
-#	if email.find('.com') == -1:
-#		message = 'email is invalid'
 	var email_check = db.Read('login_database','email',"'"+email+"'")
 	var username_check = db.Read('login_database','username',"'"+username+"'")
 	if email_check != []: message = 'this email is already registered'
@@ -73,6 +65,9 @@ remote func password_confirmation(username,password, salt):
 	if password != password_db: message = 'password or username is wrong'
 	rpc_id(api.get_rpc_sender_id(), 'update_status', message)
 	if message != 'login...': return
+	var ip = api.get_peer_address(api.get_rpc_sender_id())
+	print(ip)
+	var token = ( username+ip+str(OS.get_unix_time())).sha256_text()
+	db.Create('validtokens_database',['username','token','ip','creation_date'],[username, token, ip, str(OS.get_unix_time())])
+	rpc_id(api.get_rpc_sender_id(), '_on_servertoken', token)
 	print(message)
-	
-	

+ 10 - 0
Database.gd

@@ -79,6 +79,16 @@ func _executer() -> void:
 		creation_date varchar(64) not null
 	);
 	""")
+	
+	database.execute("""
+	create table validtokens_database( 
+		id serial primary key,
+		username varchar(64) not null,
+		token varchar(64) unique not null,
+		ip varchar(64) not null,
+		creation_date varchar(64) not null
+	);
+	""")
 #	Create('niggers',["crime","executiondate"],["'das rite'","'2017-06-01'"])
 #	Update('niggers',"executiondate","'2019-08-07'" , "crime", "'das rite'")
 #	print(Read('niggers',"crime","'das rite'"))

+ 5 - 0
loginnetcode.gd

@@ -50,3 +50,8 @@ remote func salt_arrived(salt):
 remote func update_status(message):
 	get_parent().get_node('LoginUI/register/VBoxContainer/Label').text = message
 	get_parent().get_node('LoginUI/loginscreen/VBoxContainer/Label2').text = message
+
+remote func _on_servertoken(token):
+	print('token arrived: ')
+	get_parent().get_node("LoginUI").emit_signal("login_confimed")
+	print(token)

+ 4 - 3
main.tscn

@@ -46,6 +46,7 @@ render_target_v_flip = true
 [node name="Goblin" type="AnimatedSprite" parent="Textures/Goblin1"]
 modulate = Color( 0, 0.811765, 1, 1 )
 frames = SubResource( 5 )
+frame = 3
 playing = true
 offset = Vector2( 32, 32 )
 
@@ -57,7 +58,7 @@ render_target_v_flip = true
 
 [node name="Goblin" type="AnimatedSprite" parent="Textures/Goblin2"]
 frames = SubResource( 5 )
-frame = 3
+frame = 2
 speed_scale = 0.8
 playing = true
 offset = Vector2( 32, 32 )
@@ -71,7 +72,7 @@ render_target_v_flip = true
 [node name="Goblin" type="AnimatedSprite" parent="Textures/Goblin3"]
 modulate = Color( 1, 0, 0, 1 )
 frames = SubResource( 5 )
-frame = 3
+frame = 1
 speed_scale = 1.2
 playing = true
 offset = Vector2( 32, 32 )
@@ -85,7 +86,7 @@ render_target_v_flip = true
 [node name="Goblin" type="AnimatedSprite" parent="Textures/Goblin4"]
 modulate = Color( 1, 0, 0.984314, 1 )
 frames = SubResource( 5 )
-frame = 1
+frame = 2
 speed_scale = 0.9
 playing = true
 offset = Vector2( 32, 32 )