🌶 feat(auth): 增加登录模式识别逻辑
This commit is contained in:
parent
9aab9022c8
commit
888a782127
@ -250,6 +250,7 @@ public class SysAuthService : IDynamicApiController, ITransient
|
||||
OrgName = user.SysOrg?.Name,
|
||||
OrgType = user.SysOrg?.Type,
|
||||
OrgLevel = user.SysOrg?.Level,
|
||||
LoginMode = loginMode,
|
||||
TokenVersion = user.TokenVersion,
|
||||
ExtProps = App.GetServices<IUserSessionExtProps>().SelectMany(u => u.GetInitExtProps(user)).ToDictionary(u => u.Key, u => u.Value)
|
||||
}, TimeSpan.FromMinutes(tokenExpire));
|
||||
@ -339,16 +340,17 @@ public class SysAuthService : IDynamicApiController, ITransient
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 刷新Token
|
||||
/// </summary>
|
||||
/// <param name="userId"></param>
|
||||
[NonAction]
|
||||
public async Task RefreshToken(long userId)
|
||||
{
|
||||
var user = await _sysUserRep.AsQueryable().IgnoreTenant().Includes(u => u.SysOrg).FirstAsync(u => u.Id == userId);
|
||||
await CreateToken(user);
|
||||
}
|
||||
///// <summary>
|
||||
///// 获取刷新Token 🔖
|
||||
///// </summary>
|
||||
///// <param name="accessToken"></param>
|
||||
///// <returns></returns>
|
||||
//[DisplayName("获取刷新Token")]
|
||||
//public string GetRefreshToken([FromQuery] string accessToken)
|
||||
//{
|
||||
// var refreshTokenExpire = _sysConfigService.GetRefreshTokenExpire().GetAwaiter().GetResult();
|
||||
// return JWTEncryption.GenerateRefreshToken(accessToken, refreshTokenExpire);
|
||||
//}
|
||||
|
||||
/// <summary>
|
||||
/// 退出系统 🔖
|
||||
@ -439,4 +441,15 @@ public class SysAuthService : IDynamicApiController, ITransient
|
||||
return 401;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 刷新token
|
||||
/// </summary>
|
||||
/// <param name="userId"></param>
|
||||
[NonAction]
|
||||
public async Task RefreshToken(long userId)
|
||||
{
|
||||
var user = await _sysUserRep.AsQueryable().IgnoreTenant().Includes(u => u.SysOrg).FirstAsync(u => u.Id == userId);
|
||||
await CreateToken(user, CommonHelper.IsMobile(_httpContextAccessor.HttpContext?.Request.Headers.UserAgent ?? "") ? LoginModeEnum.APP : LoginModeEnum.PC);
|
||||
}
|
||||
}
|
||||
@ -552,4 +552,15 @@ public static class CommonHelper
|
||||
{ }
|
||||
return "未知";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 判断是否为移动端UA
|
||||
/// </summary>
|
||||
/// <param name="userAgent"></param>
|
||||
/// <returns></returns>
|
||||
public static bool IsMobile(string userAgent)
|
||||
{
|
||||
var mobilePatterns = new []{ "android.*mobile", "iphone", "ipod", "windows phone", "blackberry", "nokia", "mobile", "opera mini", "opera mobi", "palm", "webos", "bb\\d+", "meego" };
|
||||
return mobilePatterns.Any(pattern => Regex.IsMatch(userAgent, pattern, RegexOptions.IgnoreCase));
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user