Пример #1
0
        public async Task <AuthenticateResultModel> AuthenticateLogin([FromBody] AuthenticateInput input)
        {
            var openId = string.Empty;

#if DEBUG
            openId = "testopenid";
#else
            Console.WriteLine(WxOpenAppId);
            var jsonResult = await SnsApi.JsCode2JsonAsync(WxOpenAppId, WxOpenAppSecret, input.Code);

            if (jsonResult.errcode == ReturnCode.请求成功)
            {
                openId = jsonResult.openid;
            }
#endif
            Console.WriteLine(openId);
            var dto = await _userAppService.Authorize(openId, input.HeadId);

            IdentityUser login = new IdentityUser
            {
                RememberMe = true,
                UserId     = dto.Id.ToString(),
                Name       = dto.NickName,
            };

            var accessToken =
                CreateAccessToken(CreateJwtClaims(login.CreateIdentity(JwtBearerDefaults.AuthenticationScheme)));

            return(new AuthenticateResultModel
            {
                AccessToken = accessToken,
                ExpireInSeconds = (int)TimeSpan.FromDays(30).TotalSeconds,
                UserId = dto.Id.ToString()
            });
        }
Пример #2
0
        public AuthenticateOutput Authenticate(AuthenticateInput input)
        {
            if (string.IsNullOrWhiteSpace(input.UsernameOrPhone) || string.IsNullOrWhiteSpace(input.Password))
            {
                return(null);
            }
            var result = _userRepository
                         .GetAll()
                         .Where(x => (x.Username == input.UsernameOrPhone || x.Phone == input.UsernameOrPhone) && x.Password == input.Password)
                         .FirstOrDefault();

            if (result != null)
            {
                if (result.Locked)
                {
                    return(null);
                }
                var claims = new List <Claim>
                {
                    new Claim(AbpClaimTypes.UserId, result.Id.ToString()),
                    new Claim(ClaimTypes.Name, result.Username),
                    new Claim(ClaimTypes.NameIdentifier, result.Username)
                };
                var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);

                //await HttpContext.SignInAsync(
                //    CookieAuthenticationDefaults.AuthenticationScheme,
                //    new ClaimsPrincipal(claimsIdentity),
                //    new AuthenticationProperties());

                var accessToken = CreateAccessToken(CreateJwtClaims(claimsIdentity));

                return(new AuthenticateOutput
                {
                    AccessToken = accessToken,
                    ExpireInSeconds = (int)_configuration.Expiration.TotalSeconds,
                    UserId = result.Id,
                    Phone = result.Phone,
                    Realname = result.Realname,
                    Username = result.Username,
                    //Role = (int)result.Role,
                    RegionCode = result.RegionCode,
                    //Department = result.Department,
                    RegionIndex = result.RegionIndex,
                    RegionName = result.RegionName
                });
            }
            return(null);
        }
        public async Task <AuthenticateOutput> Authenticate([FromBody] AuthenticateInput input)
        {
            var expires = input.RememberMe ? DateTime.UtcNow.AddDays(30) : DateTime.UtcNow.AddMinutes(30);

            var user = await _userService.Authenticate(input.UserName, input.Password);

            if (user == null)
            {
                throw new Exception("Unauthorised");
            }

            return(new AuthenticateOutput()
            {
                Token = GetAuthToken(user, expires)
            });
        }
        public async Task <IActionResult> Authenticate(AuthenticateInput input)
        {
            var user = await _userService.GetUser(input.UserName, input.HashedPassword);

            if (user == null)
            {
                return(Unauthorized());
            }
            var expiration = DateTime.Now.AddHours(1);
            var token      = _jwtManager.GenerateJwtToken(user.UserName, expiration);

            return(Ok(new AuthenticateResponse()
            {
                Token = token,
                Expiration = expiration
            }));
        }
Пример #5
0
        public async Task <string> Authenticate(AuthenticateInput input)
        {
            //var user = await _userRepository.FirstOrDefaultAsync(u => u.Email == input.Email && u.Password == input.Password);
            //if (user == null)
            //    throw new KnownException();

            var claims = new[]
            {
                new Claim(JwtRegisteredClaimNames.Nbf, $"{new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds()}"),
                new Claim(JwtRegisteredClaimNames.Exp, $"{new DateTimeOffset(DateTime.Now.AddMinutes(30)).ToUnixTimeSeconds()}"),
            };
            var claimsIdentity = new[] { new ClaimsIdentity(claims) };
            var properties     = new AuthenticationProperties();

            properties.Parameters.Add(AudiencePropertyKey, "Sso");
            properties.ExpiresUtc = DateTime.Now.AddHours(2);
            return(await CreateAccessToken(new AuthenticationTicket(new ClaimsPrincipal(claimsIdentity), properties, "")));
        }
Пример #6
0
        public async Task <AuthenticateResult> Authenticate(AuthenticateInput input, CancellationToken ct)
        {
            using (DataFilter.Disable <IMultiTenant>())
            {
                var identityUser = await UserManager.FindByEmailAsync(input.UsernameOrEmail)
                                   ?? await UserManager.FindByNameAsync(input.UsernameOrEmail);

                if (!await UserManager.CheckPasswordAsync(identityUser, input.Password))
                {
                    throw new BusinessException(ScoringDomainErrorCodes.AuthenticateFailed);
                }

                if (identityUser == null)
                {
                    throw new BusinessException(ScoringDomainErrorCodes.AuthenticateFailed);
                }
                var accessToken = await AuthJwtProvider.GenerateJwt(identityUser, ct);

                return(new AuthenticateResult(accessToken, AuthJwtProvider.JwtSettings.ExpirationDays.TotalSeconds));
            }
        }
Пример #7
0
        public async Task <JsonResponse <AuthenticateOutput> > Authenticate([FromBody] AuthenticateInput input)
        {
            if (input.UserNameOrEmailAddress == "admin" && input.Password == "admin")
            {
                var identity = await _facadeLoginManager.CreateClaimsIdentity("10000", "admin", "1");

                var accessToken = CreateAccessToken(CreateJwtClaims(identity));

                return(new JsonResponse <AuthenticateOutput>
                {
                    Data = new AuthenticateOutput
                    {
                        AccessToken = accessToken,
                        EncryptedAccessToken = GetEncrpyedAccessToken(accessToken),
                        ExpireInSeconds = (int)_configuration.Expiration.TotalSeconds
                    }
                });
            }
            else
            {
                return(new JsonResponse <AuthenticateOutput>(false, "登入失败"));
            }
        }