🌶 feat(auth): 增加登录模式识别逻辑
This commit is contained in:
parent
9aab9022c8
commit
888a782127
@ -250,6 +250,7 @@ public class SysAuthService : IDynamicApiController, ITransient
|
|||||||
OrgName = user.SysOrg?.Name,
|
OrgName = user.SysOrg?.Name,
|
||||||
OrgType = user.SysOrg?.Type,
|
OrgType = user.SysOrg?.Type,
|
||||||
OrgLevel = user.SysOrg?.Level,
|
OrgLevel = user.SysOrg?.Level,
|
||||||
|
LoginMode = loginMode,
|
||||||
TokenVersion = user.TokenVersion,
|
TokenVersion = user.TokenVersion,
|
||||||
ExtProps = App.GetServices<IUserSessionExtProps>().SelectMany(u => u.GetInitExtProps(user)).ToDictionary(u => u.Key, u => u.Value)
|
ExtProps = App.GetServices<IUserSessionExtProps>().SelectMany(u => u.GetInitExtProps(user)).ToDictionary(u => u.Key, u => u.Value)
|
||||||
}, TimeSpan.FromMinutes(tokenExpire));
|
}, TimeSpan.FromMinutes(tokenExpire));
|
||||||
@ -339,16 +340,17 @@ public class SysAuthService : IDynamicApiController, ITransient
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
///// <summary>
|
||||||
/// 刷新Token
|
///// 获取刷新Token 🔖
|
||||||
/// </summary>
|
///// </summary>
|
||||||
/// <param name="userId"></param>
|
///// <param name="accessToken"></param>
|
||||||
[NonAction]
|
///// <returns></returns>
|
||||||
public async Task RefreshToken(long userId)
|
//[DisplayName("获取刷新Token")]
|
||||||
{
|
//public string GetRefreshToken([FromQuery] string accessToken)
|
||||||
var user = await _sysUserRep.AsQueryable().IgnoreTenant().Includes(u => u.SysOrg).FirstAsync(u => u.Id == userId);
|
//{
|
||||||
await CreateToken(user);
|
// var refreshTokenExpire = _sysConfigService.GetRefreshTokenExpire().GetAwaiter().GetResult();
|
||||||
}
|
// return JWTEncryption.GenerateRefreshToken(accessToken, refreshTokenExpire);
|
||||||
|
//}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 退出系统 🔖
|
/// 退出系统 🔖
|
||||||
@ -439,4 +441,15 @@ public class SysAuthService : IDynamicApiController, ITransient
|
|||||||
return 401;
|
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 "未知";
|
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