Advertisement
SkyLaGer

MySQL Login and Registration system [GT-MP]

Oct 11th, 2017
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.58 KB | None | 0 0
  1. /*
  2.  
  3.     Для чего этот код вы можете найти на сайте www.GTA-Dev.ru в разделе "Мануалы и уроки" для GT-MP
  4.  
  5. */
  6.  
  7. using GrandTheftMultiplayer.Server.API;
  8. using GrandTheftMultiplayer.Server.Elements;
  9. using GrandTheftMultiplayer.Server.Managers;
  10. using Insight.Database;
  11. using Insight.Database.Providers.MySql;
  12. using MySql.Data.MySqlClient;
  13. using System;
  14. using System.Collections.Generic;
  15. using System.Linq;
  16. using System.Text;
  17. using System.Threading.Tasks;
  18.  
  19. using BCr = BCrypt.Net;
  20.  
  21. namespace NewProject
  22. {
  23.  
  24.     public class Main : Script
  25.     {
  26.         public static MySqlConnectionStringBuilder _database;
  27.         public static IUserRepository _userRepository;
  28.  
  29.         public Main()
  30.         {
  31.             API.onResourceStart += API_onResourceStart;
  32.         }
  33.  
  34.         private void API_onResourceStart()
  35.         {
  36.             MySqlInsightDbProvider.RegisterProvider();
  37.  
  38.             _database = new MySqlConnectionStringBuilder("server=localhost;user=gta-dev.ru;database=newserver;port=3306;password=123456;");\
  39.  
  40.             _userRepository = _database.Connection().As<IUserRepository>();
  41.         }
  42.  
  43.         [Command("ul", GreedyArg = true)]
  44.         public void CMD_UserLogin(Client player, string password)
  45.         {
  46.             UserAccount account = _userRepository.GetAccount(player.name);
  47.  
  48.             bool isPasswordCorrect = BCr.BCrypt.Verify(password, account.Hash);
  49.  
  50.             if(isPasswordCorrect)
  51.             {
  52.                 API.sendChatMessageToPlayer(player, "Вы успешно авторизовались");
  53.             }
  54.             else
  55.             {
  56.                 API.sendChatMessageToPlayer(player, "Пароль не верный");
  57.             }
  58.         }
  59.  
  60.         [Command("ur", GreedyArg = true)]
  61.         public void CMD_UserRegister(Client player, string password)
  62.         {
  63.             var hash = BCr.BCrypt.HashPassword(password, BCr.BCrypt.GenerateSalt(12));
  64.  
  65.             UserAccount account = new UserAccount
  66.             {
  67.                 UserName = player.name,
  68.                 Hash = hash
  69.             };
  70.  
  71.             _userRepository.RegisterAccount(account);
  72.  
  73.             API.sendChatMessageToPlayer(player, "Вы успешно зарегистрировались");
  74.         }
  75.     }
  76.  
  77.     public interface IUserRepository
  78.     {
  79.         UserAccount RegisterAccount(UserAccount userAccount);
  80.         UserAccount GetAccount(string name);
  81.     }
  82.  
  83.     public class UserAccount
  84.     {
  85.         public string UserName { get; set; }
  86.         public string Hash { get; set; }
  87.     }
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement