Auth.gd 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. extends Node
  2. var net = NetworkedMultiplayerENet.new()
  3. var api = MultiplayerAPI.new()
  4. var port = 1909
  5. var maxplayer = 100
  6. #var cert = load('user://Certificate/x509_Certificate.crt')
  7. #var key = load('user://Certificate/x509_Key.key')
  8. func _ready():
  9. print('Login listening to port: ' + str(port))
  10. net.create_server(port, maxplayer)
  11. # net.set_dtls_key(key)
  12. # net.set_dtls_certificate(cert)
  13. # net.set_dtls_enabled(true)
  14. self.set_custom_multiplayer(api)
  15. custom_multiplayer.set_root_node(self)
  16. custom_multiplayer.set_network_peer(net)
  17. net.connect("peer_disconnected",self,"disc")
  18. net.connect("peer_connected",self,"conn")
  19. pass # Replace with function body.
  20. func disc(id):
  21. print('removing token from peer: ' + str(id))
  22. var db = get_parent().get_node('PostgreSQL')
  23. db.Delete('validtokens_database',"ip", "'"+str(id)+"'")
  24. func _process(_delta):
  25. custom_multiplayer.poll()
  26. var playerphsyics = preload('res://playerphysics.tscn')
  27. func conn(id):
  28. print('login client connected, id: ' + str(id))
  29. export(NodePath) var PostgreSQL
  30. remote func RegisterPlayer(username, password, password2, email, salt, requester):
  31. var db = get_parent().get_node('PostgreSQL')
  32. var message = 'registering...'
  33. if password != password2:
  34. message = 'passwords are not equal'
  35. var email_check = db.Read('login_database','email',"'"+email+"'")
  36. var username_check = db.Read('login_database','username',"'"+username+"'")
  37. if email_check != []: message = 'this email is already registered'
  38. if username_check != []: message = 'someone already has this username'
  39. print(message)
  40. rpc_id(api.get_rpc_sender_id(), 'update_status', message)
  41. if message != 'registering...': return
  42. for i in 1024: password = (password+salt).sha256_text()
  43. print('adding new data to the login db...')
  44. db.Create('login_database',['email','username','password','salt','creation_date'],[email, username, password, salt, str(OS.get_unix_time())])
  45. remote func salt_request(username):
  46. var db = get_parent().get_node('PostgreSQL')
  47. print('salt requested... by ' + str(username))
  48. var salt = db.Read('login_database','username',"'"+username+"'")
  49. print(salt)
  50. if salt == []:
  51. rpc_id(api.get_rpc_sender_id(), 'update_status', 'user not found')
  52. rpc_id(api.get_rpc_sender_id(), 'salt_arrived', salt[0][4])
  53. remote func password_confirmation(username,password, salt):
  54. var message = 'login...'
  55. var db = get_parent().get_node('PostgreSQL')
  56. for i in 1024: password = (password+salt).sha256_text()
  57. var password_db = db.Read('login_database','username',"'"+username+"'")[0][3]
  58. print(salt)
  59. print(password)
  60. print(password_db)
  61. var token_query = db.Read('validtokens_database',"username", "'"+username+"'")
  62. print('***token query is:')
  63. print(token_query)
  64. print('***token query')
  65. if token_query != []: message = 'user is already logged in'
  66. if password != password_db: message = 'password or username is wrong'
  67. rpc_id(api.get_rpc_sender_id(), 'update_status', message)
  68. if message != 'login...': return
  69. var ip = api.get_rpc_sender_id()
  70. print(ip)
  71. var token = ( str(username)+str(ip)+str(OS.get_unix_time())).sha256_text()
  72. db.Delete('validtokens_database',"username", "'"+username+"'")
  73. db.Create('validtokens_database',['username','token','ip','creation_date'],[username, token, ip, str(OS.get_unix_time())])
  74. rpc_id(api.get_rpc_sender_id(), '_on_servertoken', token, username)
  75. print(message)
  76. remote func chang_password(username, password, password_new, salt, username_new, email_new):
  77. var message = 'updating password...'
  78. var db = get_parent().get_node('PostgreSQL')
  79. for i in 1024: password = (password+salt).sha256_text()
  80. for i in 1024: password_new = (password_new+salt).sha256_text()
  81. var password_db = db.Read('login_database','username',"'"+username+"'")[0][3]
  82. print(salt)
  83. print(password)
  84. print(password_db)
  85. var token_query = db.Read('validtokens_database',"username", "'"+username+"'")
  86. print('***token query is:')
  87. print(token_query)
  88. print('***token query')
  89. if token_query != []: message = 'user not found'
  90. if password != password_db: message = 'password or username is wrong'
  91. var email_check = db.Read('login_database','email',"'"+email_new+"'")
  92. var username_check = db.Read('login_database','username',"'"+username_new+"'")
  93. if email_check != []: message = 'this email is already registered'
  94. if username_check != []: message = 'someone already has this username'
  95. print(message)
  96. rpc_id(api.get_rpc_sender_id(), 'update_status', message)
  97. if message != 'updating password...': return
  98. var ip = api.get_rpc_sender_id()
  99. print(ip)
  100. db.Update('login_database', 'password', "'"+password_new+"'", 'username', "'"+username+"'")
  101. db.Update('login_database', 'email', "'"+email_new+"'", 'username', "'"+username+"'")
  102. db.Update('login_database', 'username', "'"+username_new+"'", 'username', "'"+username+"'")
  103. # var token = ( str(username)+str(ip)+str(OS.get_unix_time())).sha256_text()
  104. # db.Delete('validtokens_database',"username", "'"+username+"'")
  105. # db.Create('validtokens_database',['username','token','ip','creation_date'],[username, token, ip, str(OS.get_unix_time())])
  106. # rpc_id(api.get_rpc_sender_id(), '_on_servertoken', token, username)
  107. var server_list = {
  108. '127.0.0.1:8081': {
  109. 'Name':'test',
  110. 'IP':'207.148.21.135',
  111. 'Port':8081,
  112. 'Ping':125,
  113. 'Gamemode':'deathmatch',
  114. 'Map':'de_dus2'
  115. },
  116. }
  117. remote func server_list_request():
  118. rpc_id( api.get_rpc_sender_id(),'_On_Server_list', server_list)