public async Task <RespostaCommand> AutenticarComFacebookAsync(string tokenTemporario) { var resposta = new RespostaCommand(); try { var verificacaoTask = ValidateFacebookTokenAsync(tokenTemporario); var usuarioTask = ObterDadosUsuarioFacebookAsync(tokenTemporario); await Task.WhenAll(verificacaoTask, usuarioTask); if (!verificacaoTask.Result.data.is_valid) { resposta.ValidationResult.Errors.Add(new FluentValidation.Results.ValidationFailure( nameof(AutenticarComFacebookAsync), "Token Facebook inválido" )); } resposta.Dados = usuarioTask.Result; return(resposta); } catch (System.Exception e) { throw e; } }
public async Task <RespostaCommand> AutenticarComGoogleAsync(string tokenTemporario) { var resposta = new RespostaCommand(); try { var payload = await GoogleJsonWebSignature.ValidateAsync( tokenTemporario, new GoogleJsonWebSignature.ValidationSettings()); var googlePayload = new GooglePayload(payload.Subject, payload.Email, payload.GivenName, payload.FamilyName, payload.JwtId, payload); resposta.Dados = googlePayload; return(resposta); } catch { resposta.ValidationResult.Errors.Add(new FluentValidation.Results.ValidationFailure( nameof(AutenticarComGoogleAsync), "Token google inválido")); return(resposta); } }
public void AdicionarResposta(RespostaCommand command) { if (command.CodigoAlternativa.HasValue) { if (!_alternativaRepository.Exists(command.CodigoPergunta, command.CodigoAlternativa.Value)) { throw new ValidateException("Alternativa não encontrada."); } } else if (!_perguntaRepository.Exists(command.CodigoPergunta)) { throw new ValidateException("Pergunta não encontrada."); } _respostaRepository.ExcluirResposta(_usuario.Codigo.GetValueOrDefault(0), command.CodigoPergunta); _respostaRepository.Add(new EnqResposta { CodigoPergunta = command.CodigoPergunta, CodigoAlternativa = command.CodigoAlternativa, CodigoContato = _usuario.Codigo.GetValueOrDefault(0) }); }
public IActionResult Adicionar([FromBody] RespostaCommand command) { _quizService.AdicionarResposta(command); return(NoContent()); }
public CommandHandler() { RespostaCommand = new RespostaCommand(); }
public async Task <RespostaCommand> AutenticarComAppleAsync(string tokenTemporario, string grant_type) { try { var resposta = new RespostaCommand(); const string checkUrl = "https://appleid.apple.com/auth/token"; var clientId = configuration["AuthSettings:AppleClienteId"]; var clientSecret = configuration["AuthSettings:AppleSecret"]; var redirectUrl = configuration["AuthSettings:AppleRedirectUrl"]; using (var http = _httpClientFactory.CreateClient()) { // var paramsDic = new Dictionary<string, string>(); var stringContent = $@"client_id={clientId}&client_secret={clientSecret}&code={tokenTemporario}&grant_type=authorization_code&redirect_uri={redirectUrl}"; // paramsDic.Add("client_id", clientId); // paramsDic.Add("client_secret", clientSecret); // paramsDic.Add("code", tokenTemporario); // paramsDic.Add("grant_type", "authorization_code"); // paramsDic.Add("redirect_uri", redirectUrl); var request = new HttpRequestMessage(HttpMethod.Post, checkUrl); request.Content = new StringContent(stringContent, Encoding.UTF8, "application/x-www-form-urlencoded"); // request.Content.Headers.ContentType.CharSet = "UTF-8"; var response = await http.SendAsync(request); var tokenOk = response.StatusCode == System.Net.HttpStatusCode.OK ? true : false; resposta.Dados = tokenOk; if (!tokenOk) { resposta.AdicionarErro(nameof(AppleLoginService), "Token inválido"); return(resposta); } var stringResult = await response.Content.ReadAsStringAsync(); var json = JsonConvert.DeserializeObject <AppleTokenVerification>(stringResult); //"eyJraWQiOiI4NkQ4OEtmIiwiYWxnIjoiUlMyNTYifQ.eyJpc3MiOiJodHRwczovL2FwcGxlaWQuYXBwbGUuY29tIiwiYXVkIjoiY29tLnRlc3RlLmVhc3lkZWxpdmVyeSIsImV4cCI6MTYwMTE1NTY1MywiaWF0IjoxNjAxMDY5MjUzLCJzdWIiOiIwMDE3NTkuN2Y0NjI4ZDIyNjQzNDBkNDhjNjJjMGJlNDgzMmExNWEuMjE1MiIsIm5vbmNlIjoiMGRlOGY1Mzg1Zjc2MzdiYWViZDMzOTZmODg3YjkyN2Y4YmMyMDllNzYzMzk4NmQxZDg1MmVlNWRhMWVhOWVjNSIsImF0X2hhc2giOiJ3QktlMGFsLXZuSkM5d2d5SzBsRTd3IiwiZW1haWwiOiJyYW1vbi5tYWlhLmxvYm9AZ21haWwuY29tIiwiZW1haWxfdmVyaWZpZWQiOiJ0cnVlIiwiYXV0aF90aW1lIjoxNjAxMDY5MjIwLCJub25jZV9zdXBwb3J0ZWQiOnRydWV9.DhvSkHi_aLrQKjn9divA6oVyA9wKcNSh4C47pU8vttK1IyZMm7ftPEL49hGHqF3meboprxoKovj7EPevD26GUZwnPxdzQfjeMZE9rQCi0DVdYBIiEspWlTtrh_03DJIs-EzToyxyex-UmjfJrju75XiGpxRo9dUkkB19_Ph4s2aYYEIcY2dLiuwVQd78Uxk14HzKvNabQtN-hHZbh7Ro40rREDXifY4Ua4YpQKD7d3-F_-xcQrzE5lDZvHddaovUh_8HkEgAgEhG2fpNwB-FPRJADN-tZbQmCIu-WgS2_xbsVUc0r7Jzu1iSq0GAQYIkGDUeFsiqdc7f92wj7fHycA"; var stream = json.id_token; var handler = new JwtSecurityTokenHandler(); var jsonToken = handler.ReadToken(stream); var tokenS = handler.ReadToken(stream) as JwtSecurityToken; var email = tokenS.Claims.First(x => x.Type == "email").Value; var sub = tokenS.Claims.First(x => x.Type == "sub").Value; var appleUserData = new AppleUserData() { email = email, userId = sub }; resposta.Dados = appleUserData; return(resposta); } } catch (System.Exception e) { throw e; } }