Compare commits
2 Commits
1dec64c7f0
...
b2e9814a90
| Author | SHA1 | Date |
|---|---|---|
|
|
b2e9814a90 | |
|
|
012aeeb883 |
|
|
@ -1,6 +1,7 @@
|
||||||
using Masuit.Tools;
|
using Masuit.Tools;
|
||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using NetTaste;
|
||||||
using SqlSugar;
|
using SqlSugar;
|
||||||
using System.Configuration;
|
using System.Configuration;
|
||||||
using System.Security.Claims;
|
using System.Security.Claims;
|
||||||
|
|
@ -70,17 +71,24 @@ namespace WGShare.API.Controllers
|
||||||
.Distinct()
|
.Distinct()
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
|
|
||||||
|
user.PermValue = perms.Sum(x => x.PermValue);
|
||||||
|
user.TenantName = tenant.TenantName;
|
||||||
|
|
||||||
var btnAutn = new List<Claim>();
|
var btnAutn = new List<Claim>();
|
||||||
btnAutn.Add(new Claim("perm", perms.Sum(x => x.PermValue).ToString()));
|
btnAutn.Add(new Claim("perm", user.PermValue.ToString()));
|
||||||
btnAutn.Add(new Claim("role", user.RoleId));
|
btnAutn.Add(new Claim("role", user.RoleId));
|
||||||
btnAutn.Add(new Claim("tenant", user.TenantId));
|
btnAutn.Add(new Claim("tenant", user.TenantId));
|
||||||
btnAutn.Add(new Claim("account", user.Account));
|
btnAutn.Add(new Claim("account", user.Account));
|
||||||
btnAutn.Add(new Claim("uname", user.UserName));
|
btnAutn.Add(new Claim("uname", user.UserName));
|
||||||
|
|
||||||
|
var refreshToken = Guid.NewGuid().ToString();
|
||||||
|
RedisHelper.Instance.Set(refreshToken, user, TimeSpan.FromDays(30).TotalSeconds.ToInt32());
|
||||||
|
|
||||||
return Ok(new
|
return Ok(new
|
||||||
{
|
{
|
||||||
perms = perms.Sum(x => x.PermValue),
|
perms = user.PermValue,
|
||||||
token = _jwtHelper.CreateToken(user.Id, btnAutn),
|
token = _jwtHelper.CreateToken(user.Id, btnAutn),
|
||||||
|
refresh_token = refreshToken,
|
||||||
roleId = user.RoleId,
|
roleId = user.RoleId,
|
||||||
userName = user.UserName,
|
userName = user.UserName,
|
||||||
tenantName = tenant.TenantName,
|
tenantName = tenant.TenantName,
|
||||||
|
|
@ -90,6 +98,46 @@ namespace WGShare.API.Controllers
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 刷新token
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="refreshToken"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost("refresh"), AllowAnonymous]
|
||||||
|
public async Task<IActionResult> Refresh([FromQuery] string refreshToken)
|
||||||
|
{
|
||||||
|
var user = RedisHelper.Instance.Get<User>(refreshToken);
|
||||||
|
if (user == null || string.IsNullOrWhiteSpace(user.Id))
|
||||||
|
{
|
||||||
|
throw Oops.Oh("登录已失效,请重新登录");
|
||||||
|
}
|
||||||
|
|
||||||
|
var btnAutn = new List<Claim>();
|
||||||
|
btnAutn.Add(new Claim("perm", user.PermValue.ToString()));
|
||||||
|
btnAutn.Add(new Claim("role", user.RoleId));
|
||||||
|
btnAutn.Add(new Claim("tenant", user.TenantId));
|
||||||
|
btnAutn.Add(new Claim("account", user.Account));
|
||||||
|
btnAutn.Add(new Claim("uname", user.UserName));
|
||||||
|
|
||||||
|
|
||||||
|
var refreshTokenNew = Guid.NewGuid().ToString();
|
||||||
|
RedisHelper.Instance.Del(refreshToken);
|
||||||
|
RedisHelper.Instance.Set(refreshTokenNew, user, TimeSpan.FromDays(30).TotalSeconds.ToInt32());
|
||||||
|
|
||||||
|
return Ok(new
|
||||||
|
{
|
||||||
|
perms = user.PermValue,
|
||||||
|
token = _jwtHelper.CreateToken(user.Id, btnAutn),
|
||||||
|
refresh_token = refreshTokenNew,
|
||||||
|
roleId = user.RoleId,
|
||||||
|
userName = user.UserName,
|
||||||
|
tenantName = user.TenantName,
|
||||||
|
expire = _configuration["Jwt:Expires"].ToInt32(),
|
||||||
|
account = user.Account,
|
||||||
|
uid = user.Id
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 匿名登录,直接进入会议室
|
/// 匿名登录,直接进入会议室
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,7 @@ namespace WGShare.API.Controllers.Frontend
|
||||||
.WhereIF(!string.IsNullOrWhiteSpace(searchKeywod), (u, r) => u.UserName.Contains(searchKeywod) || u.Account.Contains(searchKeywod))
|
.WhereIF(!string.IsNullOrWhiteSpace(searchKeywod), (u, r) => u.UserName.Contains(searchKeywod) || u.Account.Contains(searchKeywod))
|
||||||
.WhereIF(isOnline.HasValue && isOnline.Value == true, (u, r) => onlineUid.Contains(u.Id))
|
.WhereIF(isOnline.HasValue && isOnline.Value == true, (u, r) => onlineUid.Contains(u.Id))
|
||||||
.WhereIF(isOnline.HasValue && isOnline.Value == false, (u, r) => !onlineUid.Contains(u.Id))
|
.WhereIF(isOnline.HasValue && isOnline.Value == false, (u, r) => !onlineUid.Contains(u.Id))
|
||||||
|
.OrderBy(u => u.Id, OrderByType.Desc)
|
||||||
.Select((u, r) => new UserOutputDTO
|
.Select((u, r) => new UserOutputDTO
|
||||||
{
|
{
|
||||||
Id = u.Id,
|
Id = u.Id,
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,13 @@
|
||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:WGShare.API.Controllers.AuthController.Refresh(System.String)">
|
||||||
|
<summary>
|
||||||
|
刷新token
|
||||||
|
</summary>
|
||||||
|
<param name="refreshToken"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:WGShare.API.Controllers.AuthController.Login(WGShare.Domain.DTOs.Login.AnonymousLoginDTO)">
|
<member name="M:WGShare.API.Controllers.AuthController.Login(WGShare.Domain.DTOs.Login.AnonymousLoginDTO)">
|
||||||
<summary>
|
<summary>
|
||||||
匿名登录,直接进入会议室
|
匿名登录,直接进入会议室
|
||||||
|
|
|
||||||
|
|
@ -11,5 +11,12 @@
|
||||||
},
|
},
|
||||||
"Redis": {
|
"Redis": {
|
||||||
"master": "192.168.2.7:6379,password=qwe123!@#,defaultDatabase=13,name=wgshare,prefix=wgshare:"
|
"master": "192.168.2.7:6379,password=qwe123!@#,defaultDatabase=13,name=wgshare,prefix=wgshare:"
|
||||||
|
},
|
||||||
|
"Jwt": {
|
||||||
|
"SecretKey": "apDbztyqjSNuvWnezhbdUxduhDidZbF897t2uTJs53RMdY9Cai7eexavBhka3HN6mcTe9oohjFg6bNffRRkcfMqnVKNBnmyPzkRgNopHGJAL7KMwkeZdZ7BaWnT57jCi",
|
||||||
|
"Issuer": "WGshareApi",
|
||||||
|
"Audience": "WGshareClient",
|
||||||
|
// 过期 秒
|
||||||
|
"Expires": 86400
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -65,5 +65,11 @@ namespace WGShare.Domain.Entities
|
||||||
|
|
||||||
[SugarColumn(IsIgnore = true)]
|
[SugarColumn(IsIgnore = true)]
|
||||||
public string TenantName { get; set; }
|
public string TenantName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 权限值
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(IsIgnore = true)]
|
||||||
|
public int PermValue { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue