Exemplo n.º 1
0
        public async Task <IActionResult> RefreshAccessTokenAsync([FromBody] SecretDto dto)
        {
            var userProfile = _jwtApp.GetExistenceToken(dto.Token);
            var user        = new UserDto
            {
                UserName = userProfile.Name,
                Id       = userProfile.UserId,
                RoleName = userProfile.RoleNames
            };

            var jwt = await _jwtApp.RefreshAsync(dto.Token, user);

            var data = new JwtResponseDto
            {
                Access  = jwt.Token,
                Type    = "Bearer",
                Profile = new Profile
                {
                    RoleNames = user.RoleName,
                    UserId    = user.Id,
                    UserName  = user.UserName,
                    Auths     = jwt.Success ? jwt.AuthTime : 0,
                    Expires   = jwt.Success ? jwt.ExpTime : 0
                }
            };

            return(new JsonResult(
                       new {
                code = 20000, data
            }));
        }
        public IActionResult LoginAsync([FromBody] SecretDto dto)
        {
            //获取用户信息
            var user = _secretApp.GetCurrentUserAsync(dto.Account, dto.Password);

            if (user == null)
            {
                return(Ok(new JwtResponseDto
                {
                    Access = "无权访问",
                    Type = "Bearer",
                    Profile = new Profile
                    {
                        Name = dto.Account,
                        Auths = 0,
                        Expires = 0
                    }
                }));
            }

            var jwt = _jwtApp.Create(user);

            return(Ok(new JwtResponseDto
            {
                Access = jwt.Token,
                Type = "Bearer",
                Profile = new Profile
                {
                    Name = user.UserName,
                    Auths = jwt.Auths,
                    Expires = jwt.Expires
                }
            }));
        }
        public async Task <IActionResult> RefreshAccessTokenAsync([FromBody] SecretDto dto)
        {
            //Todo:获取用户信息
            var user = _secretApp.GetCurrentUserAsync(dto.Account, dto.Password);

            if (user == null)
            {
                return(Ok(new JwtResponseDto
                {
                    Access = "无权访问",
                    Type = "Bearer",
                    Profile = new Profile
                    {
                        Name = dto.Account,
                        Auths = 0,
                        Expires = 0
                    }
                }));
            }

            var jwt = await _jwtApp.RefreshAsync(dto.Token, user);

            return(Ok(new JwtResponseDto
            {
                Access = jwt.Token,
                Type = "Bearer",
                Profile = new Profile
                {
                    Name = user.UserName,
                    Auths = jwt.Success ? jwt.Auths : 0,
                    Expires = jwt.Success ? jwt.Expires : 0
                }
            }));
        }
Exemplo n.º 4
0
        public async Task <IActionResult> LoginAsync(SecretDto dto)
        {
            var user = await _userApp.QueryFirst(p => p.Name == dto.UserName& p.Password == dto.Password);

            if (user == null)
            {
                return(Ok(new JwtResponseDto
                {
                    Access = "用户不存在,无权访问",
                    Type = "Bearer",
                    err_code = 1,
                    Data = new Profile
                    {
                        Name = dto.UserName,
                        Auths = 0,
                        Expires = 0
                    }
                }));
            }

            var jwt = _jwtApp.Create(user);

            return(Ok(new JwtResponseDto
            {
                Access = jwt.Token,
                Type = "Bearer",
                err_code = 0,
                Data = new Profile
                {
                    Name = user.Name,
                    Auths = jwt.Auths,
                    Expires = jwt.Expires
                }
            }));
        }
Exemplo n.º 5
0
        public SecretDto Add(SecretDto secret)
        {
            var cmd       = new Infrastructure.Repository.SecretRepository(_options);
            var newSecret = cmd.Add(secret);

            return(newSecret);
        }
Exemplo n.º 6
0
        public JsonResult LoginAsync([FromBody] SecretDto dto)
        {
            //Todo:获取用户信息
            //var user = new UserDto
            //{
            //    Id = Guid.NewGuid(),
            //    UserName = "******",
            //    Role = Guid.Empty,
            //    Email = "*****@*****.**",
            //    Phone = "13912345678",
            //};

            var user = _loginApp.GetUserInfo(dto.UserName, dto.Password);

            if (user == null)
            {
                var datanull = new JwtResponseDto
                {
                    Access  = "无权访问",
                    Type    = "Bearer",
                    Profile = new Profile
                    {
                        UserName = dto.UserName,
                        Auths    = 0,
                        Expires  = 0
                    }
                };
                return(new JsonResult
                       (
                           new
                {
                    code = 20000,
                    data = datanull
                }
                       ));
            }

            var jwt  = _jwtApp.Create(user);
            var data = new JwtResponseDto
            {
                Access = jwt.Token,
                Type   = "Bearer",

                Profile = new Profile
                {
                    RoleNames = user.RoleName,
                    UserId    = user.Id,
                    UserName  = user.UserName,
                    Auths     = jwt.AuthTime,
                    Expires   = jwt.ExpTime
                }
            };

            return(new JsonResult
                       (new {
                code = 20000,
                data
            }));
        }
Exemplo n.º 7
0
        public async Task <IActionResult> Post([FromBody] SecretDto secret)
        {
            _loggerAdapter.LogInformation("secret method call started");
            var secretCommand = _mapper.Map <CreateSecretCommand>(secret);
            var result        = await _mediator.Send(secretCommand);

            _loggerAdapter.LogInformation("secret method call ended");
            return(new OkObjectResult(result));
        }
Exemplo n.º 8
0
        public IActionResult RefreshAccessToken(SecretDto dto)
        {
            //Todo:获取用户信息
            var user = _homeBus.JwtSubmitLogin(dto.username, dto.password);

            if (user == null)
            {
                return(Ok(
                           new AjaxResult
                {
                    Success = false,
                    Msg = "用户名或密码错误!",
                    Data = new JwtResponseDto
                    {
                        Access = "用户名或密码错误!",
                        Type = "Bearer",
                        Profile = new Profile
                        {
                            UserName = dto.username,
                            Auths = 0,
                            Expires = 0
                        }
                    },
                    ErrorCode = 0
                }));
            }

            var jwt = _jwtApp.RefreshAsync(dto.Token, user);

            return(Ok(
                       new AjaxResult
            {
                Success = true,
                Msg = "Token刷新成功!",
                Data = new JwtResponseDto
                {
                    Access = jwt.Token,
                    Type = "Bearer",
                    Profile = new Profile
                    {
                        UserId = user.UserId,
                        UserName = user.UserName,
                        RealName = user.RealName,
                        Auths = jwt.Success ? jwt.Auths : 0,
                        Expires = jwt.Success ? jwt.Expires : 0
                    }
                },
                ErrorCode = 0
            }));
        }
Exemplo n.º 9
0
        public IActionResult SignIn([FromBody] SecretDto dto)
        {
            //Todo:判断当前获取用户是否存在,不存在直接返回 401
            var user = new
            {
                Id    = Guid.NewGuid(),
                Name  = "yuiter",
                Role  = Guid.NewGuid(),
                Email = "*****@*****.**",
                Phone = "13912345678",
            };

            JwtSecurityTokenHandler tokenHandler = new JwtSecurityTokenHandler();
            SymmetricSecurityKey    key          = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Jwt:SecurityKey"]));

            DateTime authTime  = DateTime.UtcNow;
            DateTime expiresAt = authTime.AddSeconds(50);

            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(new Claim[] {
                    new Claim(ClaimTypes.Name, user.Name),
                    new Claim(ClaimTypes.Role, user.Role.ToString()),
                    new Claim(ClaimTypes.Email, user.Email),
                    new Claim(ClaimTypes.MobilePhone, user.Phone)
                }),                                                                             //创建声明信息
                Issuer             = "yuiter.com",                                              //Jwt token 的签发者
                Audience           = "yuiter.com",                                              //Jwt token 的接收者
                Expires            = expiresAt,                                                 //过期时间
                SigningCredentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256) //创建 token
            };

            var token = tokenHandler.CreateToken(tokenDescriptor);

            return(Ok(new
            {
                access_token = tokenHandler.WriteToken(token),
                token_type = "Bearer",
                profile = new
                {
                    name = user.Name,
                    role = user.Role,
                    auth_time = new DateTimeOffset(authTime).ToUnixTimeSeconds(),
                    expires_at = new DateTimeOffset(expiresAt).ToUnixTimeSeconds()
                }
            }));
        }
Exemplo n.º 10
0
        public async Task <IActionResult> RefreshAccessTokenAsync([FromBody] SecretDto dto)
        {
            var auth = HttpContext.AuthenticateAsync().Result.Principal.Claims;
            //Todo:获取用户信息
            //var user = new UserDto
            //{
            //    Id = Guid.NewGuid(),
            //    UserName = "******",
            //    Role = Guid.Empty,
            //    Email = "*****@*****.**",
            //    Phone = "13912345678",
            //};
            var user = await _secretApp.GetCurrentUserAsync(dto.UserName, dto.Password);

            if (user == null)
            {
                return(Ok(new JwtResponseDto
                {
                    Access = "无权访问",
                    Type = "Bearer",
                    err_code = 1,
                    Data = new Profile
                    {
                        Name = dto.UserName,
                        Auths = 0,
                        Expires = 0
                    }
                }));
            }

            var jwt = await _jwtApp.RefreshAsync(dto.Token, user);

            return(Ok(new JwtResponseDto
            {
                Access = jwt.Token,
                err_code = 0,
                Type = "Bearer",
                Data = new Profile
                {
                    Name = user.UserName,
                    Auths = jwt.Success ? jwt.Auths : 0,
                    Expires = jwt.Success ? jwt.Expires : 0
                }
            }));
        }
Exemplo n.º 11
0
        public async Task <ResultResponseDto> AddSecret(SecretDto dto)
        {
            if (!dto.IsValid())
            {
                return(Result.ReFailure <ResultResponseDto>("请求参数错误", ResultCodes.InvalidParameter));
            }
            if (base.State == null)
            {
                return(Result.ReFailure <ResultResponseDto>("API资源不存在", ResultCodes.NotFound));
            }

            Secret secret = new Secret(dto.Value, dto.Type, dto.Description, dto.Expiration);

            this.State.Secrets.Add(secret);
            await base.WriteStateAsync();

            return(Result.ReSuccess <ResultResponseDto>());
        }
Exemplo n.º 12
0
        public async Task <IActionResult> LoginAsync(SecretDto dto)
        {
            //Todo:获取用户信息
            //var user = new UserDto
            //{
            //    Id = Guid.NewGuid(),
            //    UserName = "******",
            //    Role = Guid.Empty,
            //    Email = "*****@*****.**",
            //    Phone = "13912345678",
            //};
            var user = await _secretApp.GetCurrentUserAsync(dto.UserName, dto.Password);

            if (user == null)
            {
                return(Ok(new JwtResponseDto
                {
                    Access = "用户不存在,无权访问",
                    Type = "Bearer",
                    err_code = 1,
                    Data = new Profile
                    {
                        Name = dto.UserName,
                        Auths = 0,
                        Expires = 0
                    }
                }));
            }

            var jwt = _jwtApp.Create(user);

            return(Ok(new JwtResponseDto
            {
                Access = jwt.Token,
                Type = "Bearer",
                err_code = 0,
                Data = new Profile
                {
                    Name = user.UserName,
                    Auths = jwt.Auths,
                    Expires = jwt.Expires
                }
            }));
        }
Exemplo n.º 13
0
        public async Task <IActionResult> RefreshAccessTokenAsync([FromBody] SecretDto dto)
        {
            //Todo:获取用户信息
            var user = new UserDto
            {
                Id       = Guid.NewGuid(),
                UserName = "******",
                Role     = Guid.Empty,
                Email    = "*****@*****.**",
                Phone    = "13912345678",
            };

            if (user == null)
            {
                return(Ok(new JwtResponseDto
                {
                    Access = "无权访问",
                    Type = "Bearer",
                    Profile = new Profile
                    {
                        Name = dto.Account,
                        Auths = 0,
                        Expires = 0
                    }
                }));
            }

            var jwt = await _jwtApp.RefreshAsync(dto.Token, user);

            return(Ok(new JwtResponseDto
            {
                Access = jwt.Token,
                Type = "Bearer",
                Profile = new Profile
                {
                    Name = user.UserName,
                    Auths = jwt.Success ? jwt.Auths : 0,
                    Expires = jwt.Success ? jwt.Expires : 0
                }
            }));
        }
Exemplo n.º 14
0
        public IActionResult Login([FromBody] SecretDto dto)
        {
            //Todo:获取用户信息
            var user = new UserDto
            {
                Id       = Guid.NewGuid(),
                UserName = "******",
                Role     = Guid.Empty,
                Email    = "*****@*****.**",
                Phone    = "13912345678",
            };

            if (user == null)
            {
                return(Ok(new JwtResponseDto
                {
                    Access = "无权访问",
                    Type = "Bearer",
                    Profile = new Profile
                    {
                        Name = dto.Account,
                        Auths = 0,
                        Expires = 0
                    }
                }));
            }

            var jwt = _jwtApp.Create(user);

            return(Ok(new JwtResponseDto
            {
                Access = jwt.Token,
                Type = "Bearer",
                Profile = new Profile
                {
                    Name = user.UserName,
                    Auths = jwt.Auths,
                    Expires = jwt.Expires
                }
            }));
        }
Exemplo n.º 15
0
        public async Task <IActionResult> RefreshAccessTokenAsync([FromBody] SecretDto dto)
        {
            var auth = HttpContext.AuthenticateAsync().Result.Principal.Claims;
            var user = await _userApp.QueryFirst(p => p.Name == dto.UserName& p.Password == dto.Password);

            if (user == null)
            {
                return(Ok(new JwtResponseDto
                {
                    Access = "无权访问",
                    Type = "Bearer",
                    err_code = 1,
                    Data = new Profile
                    {
                        Name = dto.UserName,
                        Auths = 0,
                        Expires = 0
                    }
                }));
            }

            var jwt = await _jwtApp.RefreshAsync(dto.Token, user);

            return(Ok(new JwtResponseDto
            {
                Access = jwt.Token,
                err_code = 0,
                Type = "Bearer",
                Data = new Profile
                {
                    Name = user.Name,
                    Auths = jwt.Success ? jwt.Auths : 0,
                    Expires = jwt.Success ? jwt.Expires : 0
                }
            }));
        }
Exemplo n.º 16
0
        public IActionResult LoginSubmit(SecretDto dto)
        {
            //Todo:获取用户信息
            var user = _homeBus.JwtSubmitLogin(dto.username, dto.password);

            if (user == null)
            {
                return(Ok(
                           new AjaxResult
                {
                    Success = false,
                    Msg = "用户名或密码错误!",
                    Data = new JwtResponseDto
                    {
                        Access = "用户名或密码错误!",
                        Type = "Bearer",
                        Profile = new Profile
                        {
                            UserName = dto.username,
                            Auths = 0,
                            Expires = 0
                        }
                    },
                    ErrorCode = 0
                }));
            }

            var jwt = _jwtApp.Create(user);

            #region 登录系统的操作记录单写,主要是登录系统时,Token还没有传递
            //获取Ip地址的临时写法,这个写法不准确,没考虑代理
            string ipAddress = HttpContextCore.Current.Connection.RemoteIpAddress.ToString();
            Base_SysUserOperationLog sysUserOperationLog = new Base_SysUserOperationLog
            {
                Id         = GuidHelper.GenerateKey(),
                LogType    = EnumType.LogType.用户操作.ToString(),
                LogContent = $"[{DateTime.Now.ToCstTime().ToString("yyyy-MM-dd HH:mm:ss")}][{ipAddress}]地址的[" + user.RealName + "]用户操作记录:登录系统",
                OpTime     = DateTime.Now.ToCstTime(),
                OpUserName = user.RealName
            };
            Task.Run(() =>
            {
                try
                {
                    Base_SysUserOperationLogBusiness _base_SysUserOperationLogBusiness = new Base_SysUserOperationLogBusiness();
                    _base_SysUserOperationLogBusiness.Insert(sysUserOperationLog);
                }
                catch
                {
                }
            });
            #endregion

            return(Ok(
                       new AjaxResult
            {
                Success = true,
                Msg = "登录成功!",
                Data = new JwtResponseDto
                {
                    Access = jwt.Token,
                    Type = "Bearer",
                    Profile = new Profile
                    {
                        UserId = user.UserId,
                        UserName = user.UserName,
                        RealName = user.RealName,
                        Auths = jwt.Auths,
                        Expires = jwt.Expires
                    }
                },
                ErrorCode = 0
            }));
        }
Exemplo n.º 17
0
        public async Task <IHttpActionResult> AddBotSecretAsync([FromBody] SecretDto input)
        {
            var response = await _kvOperator.SetSecretAsyn(input.Name, input.Secret);

            return(Ok(response));
        }