mirror of
https://github.com/project-redbud/FunGame-Server.git
synced 2025-04-21 11:39:36 +08:00
完善checklogin验证
This commit is contained in:
parent
0bef491b5c
commit
452c7b9b7e
@ -22,6 +22,8 @@ namespace Milimoe.FunGame.Server.Model
|
||||
*/
|
||||
private User? User = null;
|
||||
private Guid CheckLoginKey = Guid.Empty;
|
||||
private string UserName = "";
|
||||
private string Password = "";
|
||||
|
||||
public ServerModel(ClientSocket socket, bool running)
|
||||
{
|
||||
@ -40,13 +42,17 @@ namespace Milimoe.FunGame.Server.Model
|
||||
SocketMessageType type = (SocketMessageType)objs[0];
|
||||
object[] args = (object[])objs[1];
|
||||
string msg = "";
|
||||
if (type != SocketMessageType.HeartBeat)
|
||||
|
||||
// 如果不等于这些Type,就不会输出一行记录。这些Type有特定的输出。
|
||||
SocketMessageType ignoreType = SocketMessageType.HeartBeat | SocketMessageType.Login;
|
||||
if (type != ignoreType)
|
||||
{
|
||||
if (msg.Trim() == "")
|
||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(type) + "] " + SocketHelper.MakeClientName(ClientName, User));
|
||||
else
|
||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(type) + "] " + SocketHelper.MakeClientName(ClientName, User) + " -> " + msg);
|
||||
}
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case SocketMessageType.GetNotice:
|
||||
@ -54,8 +60,27 @@ namespace Milimoe.FunGame.Server.Model
|
||||
break;
|
||||
|
||||
case SocketMessageType.Login:
|
||||
CheckLoginKey = Guid.Empty;
|
||||
if (args != null)
|
||||
{
|
||||
string? username = "", password = "", autokey = "";
|
||||
if (args.Length > 0) username = NetworkUtility.ConvertJsonObject<string>(args[0]);
|
||||
if (args.Length > 1) password = NetworkUtility.ConvertJsonObject<string>(args[1]);
|
||||
if (args.Length > 2) autokey = NetworkUtility.ConvertJsonObject<string>(args[2]);
|
||||
if (username != null && password != null)
|
||||
{
|
||||
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(type) + "] UserName: " + username);
|
||||
if (username == "test" && password == "123456".Encrypt("test"))
|
||||
{
|
||||
if (autokey != null) ServerHelper.WriteLine(autokey);
|
||||
UserName = username;
|
||||
Password = password;
|
||||
CheckLoginKey = Guid.NewGuid();
|
||||
return Send(socket, type, CheckLoginKey);
|
||||
}
|
||||
}
|
||||
}
|
||||
return Send(socket, type, CheckLoginKey);
|
||||
|
||||
case SocketMessageType.CheckLogin:
|
||||
if (args != null && args.Length > 0)
|
||||
@ -64,14 +89,14 @@ namespace Milimoe.FunGame.Server.Model
|
||||
if (CheckLoginKey.Equals(checkloginkey))
|
||||
{
|
||||
// 添加至玩家列表
|
||||
User = Factory.New<User>(msg);
|
||||
User = Factory.New<User>(UserName, Password);
|
||||
AddUser();
|
||||
GetUserCount();
|
||||
return Send(socket, type, msg);
|
||||
return Send(socket, type, UserName, Password);
|
||||
}
|
||||
ServerHelper.WriteLine("客户端发送了错误的秘钥,不允许本次登录。");
|
||||
}
|
||||
return false;
|
||||
return Send(socket, type, CheckLoginKey.ToString());
|
||||
|
||||
case SocketMessageType.Logout:
|
||||
msg = "你已成功退出登录! ";
|
||||
|
Loading…
x
Reference in New Issue
Block a user