Ejemplo n.º 1
0
        public async Task <AjaxResult> Login(LoginDto dto)
        {
            Check.NotNull(dto, nameof(dto));

            if (!ModelState.IsValid)
            {
                return(new AjaxResult("提交信息验证失败", AjaxResultType.Error));
            }
            //todo: 校验验证码

            dto.Ip        = HttpContext.GetClientIp();
            dto.UserAgent = Request.Headers["User-Agent"].FirstOrDefault();

            OperationResult <User> result = await _identityContract.Login(dto);

            IUnitOfWork unitOfWork = HttpContext.RequestServices.GetUnitOfWork <User, int>();

            unitOfWork.Commit();

            if (!result.Succeeded)
            {
                return(result.ToAjaxResult());
            }

            User user = result.Data;
            await _signInManager.SignInAsync(user, dto.Remember);

            return(new AjaxResult("登录成功"));
        }
Ejemplo n.º 2
0
        public async Task <AjaxResult> Token(TokenDto dto)
        {
            string grantType = dto.GrantType?.UpperToLowerAndSplit("_");

            if (grantType == GrantType.Password)
            {
                Check.NotNull(dto.Account, nameof(dto.Account));
                Check.NotNull(dto.Password, nameof(dto.Password));

                LoginDto loginDto = new LoginDto()
                {
                    Account    = dto.Account,
                    Password   = dto.Password,
                    ClientType = dto.ClientType,
                    IsToken    = true,
                    Ip         = HttpContext.GetClientIp(),
                    UserAgent  = Request.Headers["User-Agent"].FirstOrDefault()
                };

                IUnitOfWork            unitOfWork = HttpContext.RequestServices.GetUnitOfWork(true);
                OperationResult <User> result     = await _identityContract.Login(loginDto);

#if NET5_0
                await unitOfWork.CommitAsync();
#else
                unitOfWork.Commit();
#endif
                if (!result.Succeeded)
                {
                    return(result.ToAjaxResult());
                }

                User         user  = result.Data;
                JsonWebToken token = await CreateJwtToken(user, dto.ClientType);

                return(new AjaxResult("登录成功", AjaxResultType.Success, token));
            }

            if (grantType == GrantType.RefreshToken)
            {
                Check.NotNull(dto.RefreshToken, nameof(dto.RefreshToken));
                JsonWebToken token = await CreateJwtToken(dto.RefreshToken);

                return(new AjaxResult("刷新成功", AjaxResultType.Success, token));
            }

            return(new AjaxResult("GrantType错误", AjaxResultType.Error));
        }
Ejemplo n.º 3
0
        public async Task <AjaxResult> LoginAsync([FromBody] LoginInputDto loginDto)
        {
            var result = await _identityContract.Login(loginDto);

            var identity = new ClaimsIdentity(JwtBearerDefaults.AuthenticationScheme);//用户标识

            identity.AddClaims(result.cliams);
            return(result.item.ToAjaxResult());
        }
Ejemplo n.º 4
0
        public async Task <AjaxResult> Login([FromBody] LoginDto dto)
        {
            Check.NotNull(dto, nameof(dto));

            if (!ModelState.IsValid)
            {
                return(new AjaxResult("提交信息验证失败", AjaxResultType.Error));
            }
            //todo: 校验验证码
            dto.Ip        = HttpContext.GetClientIp();
            dto.UserAgent = Request.Headers["User-Agent"].FirstOrDefault();

            OperationResult <string> result = await _identityService.Login(dto);

            return(new AjaxResult(result.Message));
        }