namespace Yw.Dto
{
///
/// 用户登录辅助类
///
public class UserLoginHelper
{
///
/// 生成输出
///
public static UserLoginOutput Generate
(
eLoginStatus loginStatus,
Tuple tuple,
IHttpContextAccessor httpContextAccessor
)
{
var vm = new UserLoginOutput();
vm.Status = loginStatus;
if (loginStatus == eLoginStatus.Success)
{
vm.User = new UserLoginUserOutput(tuple.Item3, tuple.Item2, tuple.Item1, null);
// token
var accessToken = JWTEncryption.Encrypt(new Dictionary()
{
{ ClaimConst.CorpID,vm.User.Corpration==null?0:vm.User.Corpration.ID }, // 登录客户 id
{ ClaimConst.UserID,vm.User.ID }, // 登录用户 id
{ ClaimConst.AdminType,(int)vm.User.AdminType},//登录权限类型
{ ClaimConst.UserTag,vm.User.Tag},//登录用户tag
{ ClaimConst.LoginAccountID,vm.User.LoginAccount.ID }, // 登录账户 id
{ ClaimConst.LoginTypeID, vm.User.LoginAccount.LoginType.ID }, // 登录类型 id
{ ClaimConst.ProjectID, 0 }, // 目标项目 id
{ ClaimConst.SoftwareID, 0 }, // 目标软件 id
{ ClaimConst.UserName,vm.User.Name}//用户名称
}, ConfigHelper.AccessTokenExpire);
//刷新token
var refreshToken = JWTEncryption.GenerateRefreshToken(accessToken, ConfigHelper.RefreshTokenExpire);
// 设置Swagger自动登录
httpContextAccessor.HttpContext.SigninToSwagger(accessToken);
vm.Token = accessToken;
vm.AccessToken = accessToken;
vm.RefreshToken = refreshToken;
}
return vm;
}
///
/// 生成输出
///
public static UserLoginOutput Generate
(
eLoginStatus loginStatus,
Tuple> tuple,
IHttpContextAccessor httpContextAccessor
)
{
var vm = new UserLoginOutput();
vm.Status = loginStatus;
if (loginStatus == eLoginStatus.Success)
{
vm.User = new UserLoginUserOutput(tuple.Item3, tuple.Item2, tuple.Item1, tuple.Item4);
vm.Software = new UserLoginTargetSoftwareOutput(tuple.Item5, tuple.Item6, tuple.Item7, tuple.Rest.Item1);
// token
var accessToken = JWTEncryption.Encrypt(new Dictionary()
{
{ ClaimConst.CorpID,vm.User.Corpration==null?0:vm.User.Corpration.ID }, // 登录用户客户 id
{ ClaimConst.UserID,vm.User.ID }, // 登录用户 id
{ ClaimConst.AdminType,(int)vm.User.AdminType},//登录用户权限类型
{ ClaimConst.UserTag,vm.User.Tag},//登录用户tag
{ ClaimConst.LoginAccountID,vm.User.LoginAccount.ID }, // 登录账户 id
{ ClaimConst.LoginTypeID, vm.User.LoginAccount.LoginType.ID }, // 登录类型 id
{ ClaimConst.ProjectID, vm.Software.Project.ID }, // 目标项目 id
{ ClaimConst.SoftwareID, vm.Software.ID }, // 目标软件 id
{ ClaimConst.UserName,vm.User.Name}//用户名称
}, ConfigHelper.AccessTokenExpire);
//刷新token
var refreshToken = JWTEncryption.GenerateRefreshToken(accessToken, ConfigHelper.RefreshTokenExpire);
// 设置Swagger自动登录
httpContextAccessor.HttpContext.SigninToSwagger(accessToken);
vm.Token = accessToken;
vm.AccessToken = accessToken;
vm.RefreshToken = refreshToken;
}
return vm;
}
}
}