Compare commits

...
4 Commits
Author SHA1 Message Date
xrain 4171756c54 新增 ErrorWhenTrue和ErrorWhenFalse 2024-03-26 10:06:17 +08:00
xrain c68cfa6192 fix simapiauth to singleton 2024-03-24 17:40:48 +08:00
xrain 8344567ac6 新增了一个获取登陆信息的方法 2024-03-24 17:31:22 +08:00
xrain 99b26d99f6 fix code 2024-03-23 07:30:24 +08:00
5 changed files with 47 additions and 7 deletions
+25 -1
View File
@@ -50,7 +50,7 @@ public class SimApiBaseController : Controller
}
/// <summary>
/// 检测条件,根据条件返回报错
/// 检测条件,根据条件返回报错 如果condition是ture报错
/// </summary>
/// <param name="condition">检测条件</param>
/// <param name="code">错误代码</param>
@@ -63,6 +63,30 @@ public class SimApiBaseController : Controller
}
}
/// <summary>
/// 检测条件,根据条件返回报错 如果condition是ture报错
/// </summary>
/// <param name="condition">检测条件</param>
/// <param name="code">错误代码</param>
/// <param name="message">错误描述</param>
protected static void ErrorWhenTrue(bool condition, int code = 500, string message = "")
{
ErrorWhen(condition, code, message);
}
/// <summary>
/// 如果condition是false 报错
/// </summary>
/// <param name="condition"></param>
/// <param name="code"></param>
/// <param name="message"></param>
protected static void ErrorWhenFalse(bool condition, int code = 500, string message = "")
{
ErrorWhen(!condition, code, message);
}
/// <summary>
/// 检测给定的变量是否为NUll
/// </summary>
+2 -2
View File
@@ -40,9 +40,9 @@ public class SimApiCommonController(SimApiAuth auth) : SimApiBaseController
{
string token = null;
if (Request.Headers.ContainsKey("Token"))
if (Request.Headers.TryGetValue("Token", out var value))
{
token = Request.Headers["Token"];
token = value;
}
auth.Logout(token);
+15
View File
@@ -1,3 +1,4 @@
#nullable enable
using System;
using System.Text.Json;
using Microsoft.Extensions.Caching.Distributed;
@@ -14,6 +15,8 @@ public class SimApiAuth(IDistributedCache cache)
/// 产生一个Token记录并返回Token
/// </summary>
/// <param name="id"></param>
/// <param name="type"></param>
/// <param name="token"></param>
/// <returns></returns>
public string Login(string id, string type = "user", string token = null)
{
@@ -25,6 +28,7 @@ public class SimApiAuth(IDistributedCache cache)
/// </summary>
/// <param name="id"></param>
/// <param name="type"></param>
/// <param name="uuid"></param>
/// <returns></returns>
public string Login(string id, string[] type, string uuid = null)
{
@@ -34,6 +38,17 @@ public class SimApiAuth(IDistributedCache cache)
return uuid;
}
/// <summary>
/// 获取登陆信息
/// </summary>
/// <param name="token"></param>
/// <returns></returns>
public SimApiLoginItem? GetLogin(string token)
{
var login = cache.GetString(token);
return login != null ? JsonSerializer.Deserialize<SimApiLoginItem>(login) : default;
}
/// <summary>
/// 退出登陆
/// </summary>
+4 -3
View File
@@ -3,6 +3,7 @@ using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Caching.Distributed;
using SimApi.Communications;
using SimApi.Helpers;
namespace SimApi.Middlewares;
@@ -11,7 +12,7 @@ namespace SimApi.Middlewares;
/// </summary>
public class SimApiAuthMiddleware(RequestDelegate next)
{
public Task Invoke(HttpContext httpContext, IDistributedCache cache)
public Task Invoke(HttpContext httpContext, IDistributedCache cache, SimApiAuth auth)
{
string token = null;
if (httpContext.Request.Headers.TryGetValue("Token", out var header))
@@ -21,10 +22,10 @@ public class SimApiAuthMiddleware(RequestDelegate next)
if (!string.IsNullOrEmpty(token))
{
var login = cache.GetString(token);
var login = auth.GetLogin(token);
if (login != null)
{
httpContext.Items.Add("LoginInfo", JsonSerializer.Deserialize<SimApiLoginItem>(login));
httpContext.Items.Add("LoginInfo", login);
}
}
+1 -1
View File
@@ -33,7 +33,7 @@ public static class SimApiExtensions
// 是否使用 AUTH
if (simApiOptions.EnableSimApiAuth)
{
builder.AddScoped<SimApiAuth>();
builder.AddSingleton<SimApiAuth>();
}
if (simApiOptions.EnableCors)