Browse Source

更新版本

master
赵新宇 1 week ago
parent
commit
6128960cc7
  1. 32
      API/Wood.Admin.WebApi/Startup.cs
  2. 1
      API/Wood.Admin.WebApi/Wood.Admin.WebApi.csproj
  3. 62
      API/Wood.Service/SystemManage/UserService.cs

32
API/Wood.Admin.WebApi/Startup.cs

@ -217,8 +217,22 @@ namespace Wood.Admin.WebApi
//添加跨域
//services.AddCors();
services.AddCors();
//services.AddCors();
services.AddCors(options =>
{
options.AddPolicy("AllowAll", builder =>
{
builder
.AllowAnyOrigin() // 允许所有来源
.AllowAnyMethod() // 允许所有 HTTP 方法(GET、POST 等)
.AllowAnyHeader(); // 允许所有请求头
});
});
//添加缓存支持
services.AddMemoryCache();
@ -387,11 +401,15 @@ namespace Wood.Admin.WebApi
//文件拦截中间件
app.UseMiddleware<FileBridgeMiddleware>();
app.UseCors(builder =>
{
builder.WithOrigins(GlobalContext.SystemConfig!.AllowCorsSite.Split(',')).AllowAnyHeader().AllowAnyMethod().AllowCredentials();
});
app.UseRouting();
app.UseCors("AllowAll");
//app.UseCors(builder =>
//{
// builder.WithOrigins(GlobalContext.SystemConfig!.AllowCorsSite.Split(',')).AllowAnyHeader().AllowAnyMethod().AllowCredentials();
//});
app.UseRouting();
// 使用身份验证中间件
app.UseAuthentication();

1
API/Wood.Admin.WebApi/Wood.Admin.WebApi.csproj

@ -59,3 +59,4 @@
</ItemGroup>
</Project>

62
API/Wood.Service/SystemManage/UserService.cs

@ -165,10 +165,64 @@ namespace Wood.Service.SystemManage
throw Oops.Oh("登录失败,没有相关用户信息!");
}
/// <summary>
/// 用户租户登录
/// </summary>
[AllowAnonymous]
/// <summary>
/// 用户登录
/// </summary>
/// <returns>可用租户信息</returns>
[AllowAnonymous]
public async Task<dynamic> LoginExtned(UserLoginParam param)
{
if (!(int.TryParse(param.CaptchaCode, out int val) && _cache.TryGetCache<int>(param.Captcha, out int cacheVal) && val == cacheVal))
{
_cache.RemoveCache(param.Captcha);
throw Oops.Oh("验证码错误!");
}
_cache.SetCache(param.Captcha, param.UserName, DateTime.Now.AddMinutes(5));
var users = await _userRepository.AsQueryable()
.Where(it => it.UserName == param.UserName)
.Where(it => it.Status == 1)
.ToListAsync();
if (users == null || users.Count < 1)
throw Oops.Oh($"不存在用户【{param.UserName}】!");
List<UserEntity> passOk = new List<UserEntity>(); //密码验证通过的账户信息
foreach (var item in users)
{
if (param!.Password == CryptogramHelper.GMSM4Decrypt(item.Password))
passOk.Add(item);
}
if (passOk.Any())
{
var tenantIds = passOk.Select(it => it.TenantId).ToList();
var tenants = await _tenantRepository.AsQueryable()
.Where(it => tenantIds.Contains(it.Id))
.Select(it => new { it.Id, it.TenantName, it.Status })
.ToListAsync();
if (tenants.All(it => it.Status != 1))
throw Oops.Oh("登录失败,账号已经冻结!");
return tenants;
}
throw Oops.Oh("登录失败,没有相关用户信息!");
}
/// <summary>
/// 用户租户登录
/// </summary>
[AllowAnonymous]
public async Task<JwtToken> TenantLogin(UserTenantLoginParam param)
{
if (_cache.TryGetCache(param.Captcha, out string? cacheVal) && cacheVal == param.UserName)

Loading…
Cancel
Save