Ejemplo n.º 1
0
        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,
            });
        }
Ejemplo n.º 2
0
        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,
            });
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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
            });
        }