/// <summary> /// 验证凭据。 /// </summary> /// <param name="userField">该参数将被忽略。</param> /// <returns>身份验证结果。</returns> public AuthResult Auth(bool userField = false) { var authProperty = new AuthPropertyModel { Name = "preferredLanguage", ProfileId = string.Empty, UserId = PlayerUUID.Random(), Value = "zh-cn" }; var uuid = PlayerUUID.FromOfflinePlayerName(Username); var result = new AuthResult { AccessToken = GuidHelper.NewGuidString(), AuthStatus = AuthStatus.Succeeded, SelectedProfile = new ProfileInfoModel { Name = Username, UUID = uuid }, User = new UserInfoModel { UUID = uuid, Properties = new List <PropertyModel> { new PropertyModel { Name = authProperty.Name, Value = authProperty.Value } } } }; var authInfo = new AuthInfoModel { UserName = Username, Profiles = new Dictionary <PlayerUUID, AuthProfileModel> { { result.SelectedProfile.UUID, new AuthProfileModel { DisplayName = Username } } }, Properties = new List <AuthPropertyModel> { authProperty } }; LauncherProfileParser.AddNewAuthInfo(authInfo, uuid); return(result); }
/// <summary> /// 添加新的验证信息 /// </summary> /// <param name="authInfo"></param> /// <param name="guid"></param> public void AddNewAuthInfo(AuthInfoModel authInfo, string guid) { if (IsAuthInfoExist(guid, authInfo.UserName)) { return; } LauncherProfile.AuthenticationDatabase.Add( authInfo.Properties.Any() ? authInfo.Properties.First().UserId : authInfo.Profiles.First().Key, authInfo); SaveProfile(); }
public AuthResult Auth(bool userField) { var authProperty = new AuthPropertyModel { Name = "preferredLanguage", ProfileId = "", UserId = Guid.NewGuid().ToString("N"), Value = "zh-cn" }; var calcGuid = GuidHelper.GetGuidByName(Username).ToString("N"); var result = new AuthResult { AccessToken = Guid.NewGuid().ToString("N"), AuthStatus = AuthStatus.Succeeded, SelectedProfile = new ProfileInfoModel { Name = Username, Id = calcGuid }, User = new UserInfoModel { Id = calcGuid, Properties = new List <PropertyModel> { new PropertyModel { Name = authProperty.Name, Value = authProperty.Value } } } }; var authInfo = new AuthInfoModel { UserName = Username, Profiles = new Dictionary <string, AuthProfileModel> { { result.SelectedProfile.Id, new AuthProfileModel { DisplayName = Username } } }, Properties = new List <AuthPropertyModel> { authProperty } }; LauncherProfileParser.AddNewAuthInfo(authInfo, calcGuid); return(result); }
public async Task <bool> Contains(AuthInfoModel newUser) { var user = await userRepository.Get(newUser.Email); if (user is null) { return(true); } else { return(false); } }
public async Task <IResultModel> GetAuthInfo() { var user = await _userRepository.FirstAsync(m => m.Id == _loginInfo.UserId && m.IsDel == false); if (user == null) { return(ResultModel.Failed("用户不存在")); } if (user.Status == UserStatus.Disabled) { return(ResultModel.Failed("用户已被禁用")); } var roles = await _roleUserRepository.QueryByUserId(_loginInfo.UserId); var skin = await _skinRepository.FirstAsync(m => m.UserId == user.Id && m.IsDel == false); var model = new AuthInfoModel { UserId = user.Id, UserCode = user.UserCode, UserName = user.UserName, Sex = user.Sex, JobName = user.JobName, Phone = user.Phone, Email = user.Email, RoleIds = string.Join(",", roles.Select(m => m.Id).ToList()), RoleCodes = string.Join(",", roles.Select(m => m.RoleCode).ToList()), RoleNames = string.Join(",", roles.Select(m => m.RoleName).ToList()), Skin = skin }; var getMenuTree = GetUserMenuTree(_loginInfo.UserId); model.Menus = await getMenuTree; //超级管理查询所有 if (_loginInfo.RoleCodes.Contains(RoleKey.ROLE_SUPER_CODE)) { model.Permissions = await _permissionRepository.GetListAsync(m => m.IsDel == false); } else { model.Permissions = await _permissionRepository.QueryByUserId(_loginInfo.UserId); } return(ResultModel.Success(model)); }
public async Task <bool> CheckPassword(AuthInfoModel signinData) { var user = await userRepository.Get(signinData.Email); if (user is null) { return(false); } var authInfo = await authInfoRepository.Get(user.AuthInfoId); var passwordHash = authInfo.PasswordHash; return(passwordHash == signinData.Password); }
public void AddNewAuthInfo(AuthInfoModel authInfo, PlayerUUID uuid) { if (IsAuthInfoExist(uuid, authInfo.UserName)) { return; } if (!(LauncherProfile.AuthenticationDatabase?.Any() ?? false)) { LauncherProfile.AuthenticationDatabase = new Dictionary <PlayerUUID, AuthInfoModel>(); } LauncherProfile.AuthenticationDatabase.Add( authInfo.Properties.Any() ? authInfo.Properties.First().UserId : authInfo.Profiles.First().Key, authInfo); SaveProfile(); }
public async Task AddUser(AuthInfoModel newUser) { var checkUser = await userRepository.Get(newUser.Email); if (checkUser is not null) { return; } var user = new UserEntity { Email = newUser.Email, AuthInfo = new AuthInfoEntity { PasswordHash = newUser.Password }, Profile = new ProfileEntity { Nickname = newUser.Email } }; await userRepository.Add(user); }
/// <summary> /// 获取认证信息 /// </summary> /// <returns></returns> public async Task <IResultModel> GetAuthInfo() { var account = await _accountRepository.GetAsync(_loginInfo.AccountId); if (account == null) { return(ResultModel.Failed("账户不存在")); } var result = account.Check(); //检测账户状态 if (!result.Successful) { return(result); } var model = new AuthInfoModel { Id = account.Id, Type = account.Type, UserName = account.UserName, Name = account.Name, Phone = account.Phone, Email = account.Email, }; #region ==获取账户详细信息== var detailsBuilders = _serviceProvider.GetServices <ILoginInfoDetailsBuilder>().ToList(); if (detailsBuilders.Any()) { var detailsBuilder = detailsBuilders.FirstOrDefault(m => m.AccountType == account.Type); if (detailsBuilder != null) { model.Details = await detailsBuilder.Build(_loginInfo.AccountId); } } #endregion #region ==Web端== if (_loginInfo.Platform == Platform.Web) { //加载配置信息 var config = await _configRepository.GetByAccount(_loginInfo.AccountId); if (config != null) { model.Skin = new SkinConfigModel { Name = config.Skin, Theme = config.Theme, FontSize = config.FontSize }; } else { model.Skin = new SkinConfigModel { Name = "pretty", Theme = "", FontSize = "small" }; } var getMenuTree = _permissionResolver.ResolveMenus(_loginInfo.AccountId); var getPageCodes = _permissionResolver.ResolvePages(_loginInfo.AccountId); var getButtonCodes = _permissionResolver.ResolveButtons(_loginInfo.AccountId); model.Menus = await getMenuTree; model.Pages = await getPageCodes; model.Buttons = await getButtonCodes; } #endregion return(ResultModel.Success(model)); }