Пример #1
0
        public async Task <IActionResult> Login([FromBody] LoginViewModel model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(new ErrorMessage(ErrorMessageResponses.IncompleteDataReceived)));
                }

                var user = await UserManager.FindByEmailAsync(model.Email);

                if (user == null)
                {
                    return(BadRequest(new ErrorMessage(ErrorMessageResponses.UnableToLogIn)));
                }

                var isUserValid = _userValidatorService.ValidateUser(user);

                if (!isUserValid)
                {
                    return(BadRequest(new ErrorMessage(ErrorMessageResponses.AccountDeactivated)));
                }

                var result = await _signInManager.CheckPasswordSignInAsync(user, model.Password, false);

                if (!result.Succeeded)
                {
                    return(BadRequest(new ErrorMessage(ErrorMessageResponses.UnableToLogIn)));
                }

                var token = await _tokenGeneratorService.CreateJwtToken(user, UserManager, _tokenOptions);

                return(Ok(token));
            }
            catch (Exception ex)
            {
                Logger.LogError(ex.Message);
                return(BadRequest(new ErrorMessage(ex)));
            }
        }
Пример #2
0
        public IActionResult Index()
        {
            // authentication successful so generate jwt token
            var tokenStr = _tokenService.CreateJwtToken(new AlipayUser()
            {
                Id            = "yufelix",
                AlibabaUserId = "1234a",
                AlipayUserId  = "123456abc",
                CreatedAt     = DateTime.UtcNow
            });

            return(Ok(new { token = tokenStr }));
        }
Пример #3
0
        public LoginResultModel LoginMiniAlipay(string code)
        {
            var response = _alipayService.GetUserIdByCode(code);

            if (response.IsError)
            {
                _logger.LogError(response.Body);
                return(null);
            }

            var alipayUser = _userRepo.FindByAlipayId(response.AlipayUserId);

            if (alipayUser == null)
            {
                alipayUser = _userRepo.Create(new AlipayUser()
                {
                    Id            = "yufelix",
                    AlibabaUserId = response.UserId,
                    AlipayUserId  = response.AlipayUserId,
                    CreatedAt     = DateTime.UtcNow
                });
            }

            var tokenStr = _tokenService.CreateJwtToken(alipayUser);
            var result   = new LoginResultModel()
            {
                BOToken      = tokenStr,
                AccessToken  = response.AccessToken,
                ExpiresIn    = response.ReExpiresIn,
                ReExpiresIn  = response.ReExpiresIn,
                RefreshToken = response.RefreshToken,
                UserId       = alipayUser.Id,
                NickName     = alipayUser.AlipayName,
                Photo        = alipayUser.AlipayPhoto
            };

            return(result);
        }