dotnetcore / osharp

OSharp是一个基于.Net6.0的快速开发框架,框架对 AspNetCore 的配置、依赖注入、日志、缓存、实体框架、Mvc(WebApi)、身份认证、功能权限、数据权限等模块进行更高一级的自动化封装,并规范了一套业务实现的代码结构与操作流程,使 .Net 框架更易于应用到实际项目开发中。
Apache License 2.0
2.79k stars 752 forks source link

3.1.7版的登录接口存在缺陷 #194

Closed allentan3 closed 3 years ago

allentan3 commented 3 years ago

描述一下BUG

3.1.7版的登录接口存在缺陷.

重现步骤

重现步骤如下:

  1. 设置Liuliu.Demo.Web为启动项目,然后运行该项目进行调试
  2. 在swagger页面中调用/api/Identity/Token接口进行登录,得到返回的AccessToken
  3. 然后在这个接口/api/Identity/Profile中填入获取到的AccessToken值并调用该接口,以获取用户信息,结果返回204错误,发现后台的User.Identity.IsAuthenticated显示为false,未正确获取到用户信息。
  4. 该问题仅存在于3.1.7版中,在3.1.3和3.1.2版中能正确获取到用户信息。

期望行为

能修复3.1.7版中的登录问题,实现正常的登录操作.

gmf520 commented 3 years ago

原因是需要同时支持Jwt和Cookie,需要指定Schema 暂时可以通过在Controller或其基类上添加如下Attribute解决,这个在后续更新中将会改善

[Authorize(Policy = FunctionRequirement.OsharpPolicy, AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
gmf520 commented 3 years ago

已修复