2026-05-04 15:35:47 +08:00
|
|
|
using System.Linq;
|
|
|
|
|
using System.Threading.Tasks;
|
2020-02-04 16:51:15 +08:00
|
|
|
using Microsoft.AspNetCore.Http;
|
2024-03-24 17:31:22 +08:00
|
|
|
using SimApi.Helpers;
|
2020-02-04 16:51:15 +08:00
|
|
|
|
2024-03-23 07:29:43 +08:00
|
|
|
namespace SimApi.Middlewares;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 认证信息获取中间件
|
|
|
|
|
/// </summary>
|
|
|
|
|
public class SimApiAuthMiddleware(RequestDelegate next)
|
2020-02-04 16:51:15 +08:00
|
|
|
{
|
2026-05-03 19:34:47 +08:00
|
|
|
public Task Invoke(HttpContext httpContext, SimApiAuth auth)
|
2020-02-04 16:51:15 +08:00
|
|
|
{
|
2026-05-04 15:35:47 +08:00
|
|
|
var token =
|
|
|
|
|
httpContext.Request.Headers["Token"].FirstOrDefault()
|
|
|
|
|
?? httpContext.Request.Query["token"].FirstOrDefault();
|
2020-02-04 16:51:15 +08:00
|
|
|
|
2024-07-26 08:11:21 +08:00
|
|
|
if (string.IsNullOrEmpty(token)) return next(httpContext);
|
|
|
|
|
var login = auth.GetLogin(token);
|
|
|
|
|
if (login != null)
|
2020-02-04 16:51:15 +08:00
|
|
|
{
|
2026-05-03 19:34:47 +08:00
|
|
|
httpContext.Items.Add("LoginToken", token);
|
2024-07-26 08:11:21 +08:00
|
|
|
httpContext.Items.Add("LoginInfo", login);
|
2020-02-04 16:51:15 +08:00
|
|
|
}
|
2026-05-03 19:34:47 +08:00
|
|
|
|
2024-03-23 07:29:43 +08:00
|
|
|
return next(httpContext);
|
2020-02-04 16:51:15 +08:00
|
|
|
}
|
2024-03-23 07:29:43 +08:00
|
|
|
}
|