|
@@ -1,48 +0,0 @@
|
|
|
-using System.Security.Claims;
|
|
|
-using Hotline.Api.Token;
|
|
|
-using Hotline.Users;
|
|
|
-using Microsoft.AspNetCore.Mvc.Filters;
|
|
|
-using NETCore.Encrypt;
|
|
|
-using XF.Domain.Exceptions;
|
|
|
-
|
|
|
-namespace Hotline.Api.Filters;
|
|
|
-
|
|
|
-public class TempTokenFilter1 : IAuthorizationFilter
|
|
|
-{
|
|
|
- /// <summary>
|
|
|
- /// Called early in the filter pipeline to confirm request is authorized.
|
|
|
- /// </summary>
|
|
|
- /// <param name="context">The <see cref="T:Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext" />.</param>
|
|
|
- public void OnAuthorization(AuthorizationFilterContext context)
|
|
|
- {
|
|
|
- if (context.RouteData.Values.Contains(new KeyValuePair<string, object?>("Action", "Login"))) return;
|
|
|
- if (context.RouteData.Values.Contains(new KeyValuePair<string, object?>("Action", "CreateDb"))) return;
|
|
|
- if (context.RouteData.Values.Contains(new KeyValuePair<string, object?>("Controller", "Report"))) return;
|
|
|
- if (context.RouteData.Values.Contains(new KeyValuePair<string, object?>("Controller", "TestSdk"))) return;
|
|
|
-
|
|
|
- var httpContext = context.HttpContext;
|
|
|
- var authString = httpContext.Request.Headers["Authorization"].ToString();
|
|
|
- if (string.IsNullOrEmpty(authString))
|
|
|
- throw new UserFriendlyException(401, "无效验证信息");
|
|
|
- var auth = authString.Split("Bearer", StringSplitOptions.RemoveEmptyEntries).LastOrDefault();
|
|
|
- if (string.IsNullOrEmpty(auth))
|
|
|
- throw new UserFriendlyException(401, "无效验证信息");
|
|
|
-
|
|
|
- var userString = EncryptProvider.AESDecrypt(auth, Sercurity.Key);
|
|
|
- var user = System.Text.Json.JsonSerializer.Deserialize<User>(userString);
|
|
|
- if (user is null)
|
|
|
- throw new UserFriendlyException(401, "无效验证信息");
|
|
|
-
|
|
|
- var contextUser = new ClaimsPrincipal(new List<ClaimsIdentity>
|
|
|
- {
|
|
|
- new ClaimsIdentity(new List<Claim>
|
|
|
- {
|
|
|
- new Claim("UserId", user.Id),
|
|
|
- new Claim("UserName", user.Name),
|
|
|
- })
|
|
|
- });
|
|
|
-
|
|
|
- httpContext.User = contextUser;
|
|
|
- }
|
|
|
-
|
|
|
-}
|