stevenjin 2023-11-18 20:17 采纳率: 97.6%
浏览 6
已结题

asp.net core 7.0 mvc 设置JWT请求头,获取客户端token

1.在使用JWT做方法前的权限认证时,会获取从页面携带的Token
2.这个Token,我直接获取了后台生成的Token,而不是获取客户端携带过来的tokcen,导致验证出了问题
3.求正确设置请求头的方法

一、配置全局请求头


    app.Use((context, next) =>
    {
        // 设置JWT请求头
        context.Request.Headers["Authorization"] = "Bearer " +  JWT.Token;//有问题,直接获取了后台生成的Token
        return next();
    });

二、使用IActionFilter做认证拦截
public void OnActionExecuting(ActionExecutingContext context)
{
var claim =context.HttpContext.User?.FindFirst("*")?.Value;

}

  • 写回答

1条回答 默认 最新

  • hhhhhffgjhg 2023-11-20 14:03
    关注

    你可以创一个GetTokenController来生成token进行之后创一个带[Authorize]的Login方法用postman把生成的token传进去测试一下是哪里出了问题
    正确的做法应该是前端发token来后端验证。ASP.NET Core其实有内置了相关的方法

    // Program.cs 中配置
    services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
            .AddJwtBearer(options =>
            {
                options.TokenValidationParameters = new TokenValidationParameters
                {
                    // 配置参数
                };
            });
    
    

    之后启用验证

    app.UseAuthentication();
    
    

    配好了之后就可以写一个TokenGenerater来进行测试了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月28日
  • 已采纳回答 11月20日
  • 创建了问题 11月18日

悬赏问题

  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?