public async Task <UserTokenDto> UserLoginAsync(UserLoginDto login) { UserEntity userEntity = await this._userRepository.QueryFirstAsync(x => x.UserName == login.UserName && x.Enable); bool loginSucces = userEntity?.PasswordIsMatch(login.Password, this._encryptHelper) ?? false; if (!loginSucces) { throw new EasyRbacException("用户名/密码错误"); } var token = new LoginTokenEntity() { UserId = userEntity.Id, CreateOn = DateTime.Now, ExpireIn = _appOptions.Value.UserLoginExpireIn, Token = $"U{this._numberConvert.ToString(userEntity.Id)}-{DateTime.Now:MMddHHmmss}-{Guid.NewGuid():N}" }; await this._loginTokenRepository.InsertAsync(token); return(new UserTokenDto() { ExpireIn = token.ExpireIn, Schema = "token", Token = token.Token, }); }
public async Task <UserTokenDto> UserLoginAsync(UserLoginDto login) { UserEntity userEntity = await this._userRepository.QueryFirstAsync(x => x.UserName == login.UserName); bool loginSucces = userEntity?.PasswordIsMatch(login.Password, this._encryptHelper) ?? false; if (!loginSucces) { throw new EasyRbacException("用户名/密码错误"); } if (!userEntity.Enable) { throw new EasyRbacException("用户被禁用,请联系管理员"); } var expireIn = userEntity.AccountType == AccountType.User ? _appOptions.Value.UserLoginExpireIn : _appOptions.Value.AppLoginExpireIn; var token = LoginTokenEntity.NewLoginToken(userEntity, expireIn, login.AppCode); await this._loginTokenRepository.InsertAsync(token); return(new UserTokenDto() { AppCode = login.AppCode, ExpireIn = token.ExpireIn, Schema = "token", Token = token.Token, }); }
private async Task <(long, long)> GetBaseInfo(string userToken) { LoginTokenEntity userTokenEntity = await this._loginService.GetTokenEntityByTokenAsync(userToken); var identity = this.User.Identity as UserIdentity; return(userTokenEntity.UserId, identity.UserId); }
private async Task <(long, long)> GetBaseInfo(string userToken) { LoginTokenEntity userTokenEntity = await this._loginService.GetTokenEntityByTokenAsync(userToken); //TODO:需要加上 //if (userTokenEntity.IsExpire()) //{ // throw new EasyRbacException("token expired"); //} var identity = this.User.Identity as ApplicationIdentity; return(userTokenEntity.UserId, identity.App.Id); }
public async Task <AppLoginResult> AppLoginAsync(AppLoginDto request) { var appEntity = await this._appRepository.QueryFirstAsync(x => x.AppCode == request.AppCode); if (appEntity.AppScret != request.AppSecret) { throw new EasyRbacException("app code/securet erro"); } var login = new LoginTokenEntity() { UserId = appEntity.Id, CreateOn = DateTime.Now, ExpireIn = (int)TimeSpan.FromDays(1).TotalSeconds, Token = $"A{this._numberConvert.ToString(appEntity.Id)}-{DateTime.Now:MMddHHmmss}-{Guid.NewGuid():N}" }; await this._loginTokenRepository.InsertAsync(login); return(new AppLoginResult() { ExpireIn = login.ExpireIn, Token = login.Token }); }