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; } } }