mirror of
http://git.coreshop.cn/jianweie/coreshoppro.git
synced 2025-12-06 17:43:26 +08:00
添加项目文件。
This commit is contained in:
96
CoreCms.Net.Auth/OverWrite/JwtTokenAuth.cs
Normal file
96
CoreCms.Net.Auth/OverWrite/JwtTokenAuth.cs
Normal file
@@ -0,0 +1,96 @@
|
||||
/***********************************************************************
|
||||
* Project: CoreCms
|
||||
* ProjectName: 核心内容管理系统
|
||||
* Web: https://www.corecms.net
|
||||
* Author: 大灰灰
|
||||
* Email: jianweie@163.com
|
||||
* CreateTime: 2021/1/31 21:45:10
|
||||
* Description: 暂无
|
||||
***********************************************************************/
|
||||
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
|
||||
namespace CoreCms.Net.Auth.OverWrite
|
||||
{
|
||||
/// <summary>
|
||||
/// 中间件
|
||||
/// 原做为自定义授权中间件
|
||||
/// 先做检查 header token的使用
|
||||
/// </summary>
|
||||
public class JwtTokenAuth
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
private readonly RequestDelegate _next;
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="next"></param>
|
||||
public JwtTokenAuth(RequestDelegate next)
|
||||
{
|
||||
_next = next;
|
||||
}
|
||||
|
||||
|
||||
private void PreProceed(HttpContext next)
|
||||
{
|
||||
//Console.WriteLine($"{DateTime.Now} middleware invoke preproceed");
|
||||
//...
|
||||
}
|
||||
private void PostProceed(HttpContext next)
|
||||
{
|
||||
//Console.WriteLine($"{DateTime.Now} middleware invoke postproceed");
|
||||
//....
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="httpContext"></param>
|
||||
/// <returns></returns>
|
||||
public Task Invoke(HttpContext httpContext)
|
||||
{
|
||||
PreProceed(httpContext);
|
||||
|
||||
//检测是否包含'Authorization'请求头
|
||||
if (!httpContext.Request.Headers.ContainsKey("Authorization"))
|
||||
{
|
||||
PostProceed(httpContext);
|
||||
|
||||
return _next(httpContext);
|
||||
}
|
||||
//var tokenHeader = httpContext.Request.Headers["Authorization"].ToString();
|
||||
var tokenHeader = httpContext.Request.Headers["Authorization"].ToString().Replace("Bearer ", "");
|
||||
|
||||
try
|
||||
{
|
||||
if (tokenHeader.Length >= 128)
|
||||
{
|
||||
//Console.WriteLine($"{DateTime.Now} token :{tokenHeader}");
|
||||
TokenModelJwt tm = JwtHelper.SerializeJwt(tokenHeader);
|
||||
//授权
|
||||
//var claimList = new List<Claim>();
|
||||
//var claim = new Claim(ClaimTypes.Role, tm.Role);
|
||||
//claimList.Add(claim);
|
||||
//var identity = new ClaimsIdentity(claimList);
|
||||
//var principal = new ClaimsPrincipal(identity);
|
||||
//httpContext.User = principal;
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine($"{DateTime.Now} middleware wrong:{e.Message}");
|
||||
}
|
||||
|
||||
PostProceed(httpContext);
|
||||
return _next(httpContext);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user