支持可扩展登录验证

This commit is contained in:
SpringHgui 2020-04-08 19:21:23 +08:00
parent 781bf8bb18
commit 310519a28a
6 changed files with 31 additions and 8 deletions

View File

@ -0,0 +1,16 @@
using FastTunnel.Core.Models;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Text;
namespace FastTunnel.Core.Handlers.Server
{
public class ConfigHandler : IConfigHandler
{
public LogInMassage GetConfig(JObject content)
{
return content.ToObject<LogInMassage>();
}
}
}

View File

@ -16,15 +16,17 @@ namespace FastTunnel.Core.Handlers
ILogger<LoginHandler> _logger;
public bool NeedRecive => true;
IConfigHandler _configHandler;
public LoginHandler(ILogger<LoginHandler> logger)
public LoginHandler(ILogger<LoginHandler> logger, IConfigHandler configHandler)
{
_logger = logger;
_configHandler = configHandler;
}
public LogInMassage GetConfig(JObject content)
{
return content.ToObject<LogInMassage>();
return _configHandler.GetConfig(content);
}
public void HandlerMsg(FastTunnelServer server, Socket client, Message<JObject> msg)

View File

@ -70,6 +70,7 @@ namespace FastTunnel.Server
.AddSingleton<LoginHandler>()
.AddSingleton<HeartHandler>()
.AddSingleton<SwapMsgHandler>()
.AddSingleton<IConfigHandler, ConfigHandler>()
.AddSingleton<ServerConfig>(implementationFactory);
}

View File

@ -58,7 +58,7 @@ namespace SuiDao.Client
{
Console.WriteLine("请选择要启动的客户端:" + Environment.NewLine);
Console.WriteLine($"0其他密钥登录");
Console.WriteLine($" 0其他密钥登录");
for (int i = 0; i < keys.Count; i++)
{
Console.WriteLine($" {i + 1}{keys[i]}");
@ -126,13 +126,17 @@ namespace SuiDao.Client
}
}
static IServiceProvider servicesProvider;
private static void LogByKey(string key, ILogger logger, bool log)
{
Console.WriteLine("登录中...");
try
{
var servicesProvider = new Host().Config(Config).Build();
if (servicesProvider == null)
servicesProvider = new Host().Config(Config).Build();
Run(servicesProvider, logger, key, log);
while (true)
@ -176,7 +180,7 @@ namespace SuiDao.Client
try
{
_client = new Connecter(server.ip, server.bind_port);
_client = new Connecter("127.0.0.1", 2271);
_client.Connect();
}
catch (Exception ex)
@ -194,8 +198,8 @@ namespace SuiDao.Client
}
else
{
// TODO: 重新输入
Console.WriteLine(jobj["errorMsg"].ToString());
NewKey(_logger);
}
}

View File

@ -11,7 +11,7 @@ using System.Net.Sockets;
namespace SuiDao.Server
{
public class SuiDaoLoginHandler : IConfigHandler
public class SuiDaoConfigHandler : IConfigHandler
{
public LogInMassage GetConfig(JObject content)
{

View File

@ -62,7 +62,7 @@ namespace SuiDao.Server
.AddSingleton<LoginHandler>()
.AddSingleton<SwapMsgHandler>()
.AddSingleton<HeartHandler>()
.AddSingleton<IConfigHandler, SuiDaoLoginHandler>();
.AddSingleton<IConfigHandler, SuiDaoConfigHandler>();
}
private static void Run(IServiceProvider servicesProvider)