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))); } }
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 })); }
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); }