Spring Security e o protocolo OAuth2 na sua API RESTful

แชร์
ฝัง
  • เผยแพร่เมื่อ 1 ม.ค. 2025

ความคิดเห็น • 97

  • @JuniorFerri
    @JuniorFerri 4 ปีที่แล้ว +23

    Parabéns pelos vídeos.
    Gostaria de pedir que o vídeo fosse atualizado para o novo padrão do Spring Security, que agora precisa de um autorizador de terceiro, pois essa parte foi removida e as tecnologias apresentadas no vídeo estão depreciadas.
    Obrigado.

  • @carlos_brunoro
    @carlos_brunoro ปีที่แล้ว

    Povo da algaworks são monstros… tá doido

  • @frederikofonseka
    @frederikofonseka 4 ปีที่แล้ว +7

    Poderia fazer um vídeo para fazer essa mesma configuração com spring-security-oauth2-autoconfigure mais atual. O mais atual tem algumas anotações que estão depreciadas e sugerem fazer de uma outra forma.

  • @joaovictormartins5843
    @joaovictormartins5843 6 ปีที่แล้ว +7

    Show!! Essa parte de autenticação é um mundo..

  • @DevEduardoAlbuquerque
    @DevEduardoAlbuquerque 4 ปีที่แล้ว

    Sou aluno do especialista Rest é o curso da Algaworks é Fantástico!!!!

  • @petroniobonavides3530
    @petroniobonavides3530 4 ปีที่แล้ว

    Alexandre.. Sou Seu fã. Extremamente didático...

  • @yurylink
    @yurylink 5 ปีที่แล้ว +1

    Para quem ja conhece como funciona a autenticação com OAuth2 o seu vídeo é um ótimo exemplo/passo a passo. Meu parabens, me ajudou muito!

  • @app2028
    @app2028 3 ปีที่แล้ว

    Sem palavras para agradecer o tanto que esse conteudo e top
    Melhor qualidade possivel

  • @vyctorhff40
    @vyctorhff40 5 ปีที่แล้ว +2

    Ótima aula cara, valeu mesmo por compartilhar

    • @algaworks
      @algaworks  5 ปีที่แล้ว

      Valeu Victor Hugo. #EquipeAW

  • @rafaelb.marcilio5550
    @rafaelb.marcilio5550 6 ปีที่แล้ว +10

    Seria bacana um exemplo com as API's de autenticação e recursos desacopladas e também exemplificando a renovação e checagem do token com roles de usuários , validação de roles pra acessar métodos etc

    • @algaworks
      @algaworks  5 ปีที่แล้ว

      Valeu Rafael. Sugestao anotada. Abraco #EquipeAW

  • @robsonnovo6437
    @robsonnovo6437 5 ปีที่แล้ว

    TO AGUARDANDO

  • @matheuscenteno2287
    @matheuscenteno2287 6 ปีที่แล้ว +35

    Poderiam fazer um curso só para oauth e jwt , explicando sobre chave privada e chave pública. Seria muito bom ver um curso assim na AlgaWorks.

    • @algaworks
      @algaworks  6 ปีที่แล้ว +11

      Nos cogitamos a fazer isso. Mas não posso prometer que teremos esse curso. De qualquer forma, gostamos sempre de saber a opinião de alunos. (Obrigado!) #equipeAW

    • @brunocasstiel
      @brunocasstiel 6 ปีที่แล้ว +3

      @@algaworks Opa acho uma ótima ideia, gostei muito da sua explicação neste vídeo, acho que uma aula mais completa seria de grande interesse da comunidade.

    • @GuilhermeCesarMedeiros
      @GuilhermeCesarMedeiros 5 ปีที่แล้ว

      Apoiado

  • @RDArantes
    @RDArantes 6 ปีที่แล้ว +4

    Ótimo tutorial, Parabéns !!! Poderia fazer a continuação ensinando trocar o token para JWT. :D

    • @algaworks
      @algaworks  6 ปีที่แล้ว

      Agradecemos a sugestão, Diego. Com certeza será considerada. Abraço! #equipeAW

  • @jardelmouradantas268
    @jardelmouradantas268 5 ปีที่แล้ว +1

    Parabéns pelo vídeo, gostei muito!

  • @aguilardias9582
    @aguilardias9582 6 ปีที่แล้ว +1

    Excelente vídeo, vejo que colocou o enablewebsecurity, enableauthorizationserver, enableresouceserver todos em uma mesma classe, não tinha pensado dessa forma, ficou bem simples de entender, um dúvida que estou tendo é como adicionar o token JWT, se puder fazer uma continuação desse vídeo com esse assunto agradeço, acho que terá bastante acesso, valeu

    • @algaworks
      @algaworks  6 ปีที่แล้ว +1

      Oi Aguilar! Eu pretendo fazer mesmo. Mas para você ir usando o JWT, por ora, você pode criar esses dois beans na classe de configuração:
      @Bean
      public TokenStore tokenStore(JwtAccessTokenConverter tc) {
      return new JwtTokenStore(tc);
      }
      @Bean
      public JwtAccessTokenConverter accessTokenConverter() {
      JwtAccessTokenConverter tc = new JwtAccessTokenConverter();
      tc.setSigningKey("123");
      return tc;
      } #equipeAW

    • @aguilardias9582
      @aguilardias9582 6 ปีที่แล้ว

      caramba é mais simples do que eu estava tentando fazer, valeu

  • @alexsandroandrade3017
    @alexsandroandrade3017 5 ปีที่แล้ว +2

    Aula incrivel! obrigado!

  • @m4cv3n
    @m4cv3n 6 ปีที่แล้ว +1

    Excelente video

  • @lagoawb
    @lagoawb 4 ปีที่แล้ว

    Muito top!!! parabens pelo video!!!
    voce tem alguma coisa falando de social login para java?

  • @mauroint
    @mauroint 3 ปีที่แล้ว +1

    Top

  • @BiiatrizZ
    @BiiatrizZ ปีที่แล้ว +1

    O meu ele só gerou o password, não gerou o client-id e nem o client-secret no console, oque pode ser?

  • @igorferreirabr
    @igorferreirabr 5 ปีที่แล้ว

    Parabens pelo video, me ajudou muito!

  • @rafaelferreira4391
    @rafaelferreira4391 5 ปีที่แล้ว +1

    Faz um de angular, como se autenticar com oauth :)

  • @alexandrenunes7902
    @alexandrenunes7902 5 ปีที่แล้ว

    Cara, muito obrigado pela ajuda, poderia dar uma ajuda para aunthenticar via android ?

  • @ymfeijo
    @ymfeijo 6 ปีที่แล้ว

    Excelente video!

  • @McLipinhoTv
    @McLipinhoTv 4 ปีที่แล้ว +1

    Como faço para configurar para que uma outra API consulte a minha API? Sem ser necessariamente um cliente web ou mobile. Por que com tempo de expiração fica difícil.

  • @brunocasstiel
    @brunocasstiel 6 ปีที่แล้ว +2

    Olá, professor, antes de tudo, muito obrigado pela colaboração com este vídeo muito bem explicado, mas eu também gostaria de saber se tem algum exemplo prático para aplicar essa autenticação no Angular >= 2, eu até busquei vagamente no github, mas não encontrei nenhum exemplo, com o postman consegui fazer funcionar normalmente.

    • @algaworks
      @algaworks  6 ปีที่แล้ว

      Oi Bruno, tudo beleza? Esse é um dos tópicos do nosso curso Fullstack Angular e Spring. Sugiro que fique atento com a próxima turma que vai abrir no fim de janeiro. Na próxima semana vamos dar início ao workshop gratuito. Segue o link: cafe.algaworks.com/wsfsas/ #equipeAW

  • @anapaulalopes12
    @anapaulalopes12 5 ปีที่แล้ว +2

    voces podiam fazer um video sobre spring/keycloak/sso... um assunto carente de conteudos em portugues..

    • @algaworks
      @algaworks  5 ปีที่แล้ว

      Ana, obrigada pela sugestao. Foi anotada no nosso calendario editorial. #EquipeAW

  • @UederCardoso
    @UederCardoso 6 ปีที่แล้ว +1

    Você um vídeo que ensina implementar Spring Boot com Security sem ser o RESTful? Eu consigo implementar security no mvc e não consigo no Spring Boot. Poderia fazer um vídeo caso não tenha vídeo sobre o assunto? Autenticar por meio de email e senha trazidos pelo banco usando o Spring security (+ Spring boot).

    • @algaworks
      @algaworks  6 ปีที่แล้ว

      Oi Ueder, acredito que não vamos ter um vídeo tratando especificamente sobre esse assunto. Indico que faça parte de nossa Comunidade Sobre Java no Facebook, lá nossos alunos e instrutores interagem e tiram dúvidas sobre os cursos e seus projetos pessoais, pode te ajudar. Segue o link: alga.works/comunidadejava #equipeAW

  • @marlonreis2409
    @marlonreis2409 6 ปีที่แล้ว

    Muito bom, ajudou bastante

  • @vandao_bm
    @vandao_bm 5 ปีที่แล้ว +1

    Muito boa a explicação Alexandre. Estava eu aqui trabalhando com o spring boot 2.1.7 quando cheguei nessa parte de configurar o oauth2 começou a dar pau na aplicação por causa do authenticationManager , por que eu estava injetando ele com @autowired e dava erro querendo um bean e eu não entedia o porque essa aula sua esclareceu bastante, mas no meu autheticationServerConfig estava usando a extends autheticationServerConfigAdapter.
    pra versão do spring boot 2 isso mudou?

    • @algaworks
      @algaworks  5 ปีที่แล้ว

      Olá Evandro!
      No vídeo, já estamos usando Spring Boot 2.
      Você pode herdar de AuthorizationServerConfigurerAdapter, sem problemas! Neste caso, você estará estendendo as funcionalidades do seu AuthorizationServer, ou seja, você está customizando.
      Da forma feita na aula, estamos usando os valores padrão gerados pelo auto-configure do Spring.

  • @elciocestaritaira2483
    @elciocestaritaira2483 4 ปีที่แล้ว +1

    Usei exatamente as mesmas configuracoes, na primeira vez quando é gerado um usuario pelo proprio spring eu coonsegui acessar os endpois, porém após configurar um usuário em SegurancaConfig nao consegui mais. "error_description": "Full authentication is required to access this resource"

  • @robsonnovo6437
    @robsonnovo6437 5 ปีที่แล้ว

    Quando vamos ter um curso de SPRING BOOT na Algaworks HEIN?

    • @algaworks
      @algaworks  5 ปีที่แล้ว +1

      O treinamento Fullstack Angular e Spring é com Spring Boot. Vamos abrir uma turma na semana que vem. Você vai participar? :D

  • @FabianoGabardoLemos
    @FabianoGabardoLemos 5 ปีที่แล้ว +1

    Ola, parabéns pela aula! Estou querendo implementar o oAuth2 em um dos meus projetos, porem não encontrei na internet as bibliotecas para implementar no mesmo! como eu posso aplicar essa segurança em um projeto java web criado no netBeans? Abraço!

    • @algaworks
      @algaworks  5 ปีที่แล้ว +1

      Olá Fabiano!
      Você utiliza o próprio Spring Security para isso. Claro que também depende de quais tecnologias você está usando na sua aplicação, por exemplo, se estiver suando Spring Boot, você pode olhar este guia da própria documentação: spring.io/guides/tutorials/spring-boot-oauth2/
      Caso contrário, você pode dar uma lida nesta parte da documentação do Spring Security com um guia para uso do OAuth2: projects.spring.io/spring-security-oauth/docs/oauth2.html

  • @zero.andreguimaraes
    @zero.andreguimaraes 5 ปีที่แล้ว +2

    caraca excelente video!!

  • @giovanegarcezdarosa5390
    @giovanegarcezdarosa5390 5 ปีที่แล้ว

    Muito bom!

  • @bestviraltubeshorts
    @bestviraltubeshorts 3 ปีที่แล้ว

    Como fazer um fetch para obtenção deste token?
    Alguém sabe?

  • @robsonlirayou
    @robsonlirayou 6 ปีที่แล้ว +1

    Pô Alexandre gostei muito, nunca tinha utilizado o OAuth, sempre uso o Basic mais muito legal, é simples eu pensei que seria mais difícil e parabéns por mais este ótimo conteúdo, e pra não perder o costume vou perguntar , eu observei que há uma expiração para o Token .... de 43199 (e lógico isto deve ter como configurar ) se for segundos isto daria o que 12 Horas então a regra de negocio seria qdo logar pedir um token e guardar este tempo e gerenciar isto?

    • @algaworks
      @algaworks  6 ปีที่แล้ว +1

      Acredito que não entendi plenamente a questão para dar uma boa resposta, mas o que posso falar é que sim, isso é configurável. Pode usar a propriedade "security.oauth2.client.access-token-validity-seconds". Sobre o valor... sim, é em segundos. #equipeAW

    • @robsonlirayou
      @robsonlirayou 6 ปีที่แล้ว +1

      Muito bom , Obrigado meu caro!

  • @UederCardoso
    @UederCardoso 6 ปีที่แล้ว +1

    Quando eu faço esses procedimentos até colocar os passwords temporários e clico em send, não aparece o token no formato json. Aparece isso 405 'Method Not Allowed'. {"timestamp":1548226530415,"status":405,"error":"Method Not Allowed","exception":"org.springframework.web.HttpRequestMethodNotSupportedException","message":"Request method 'POST' not supported","path":"/oauth/token"}. O que está ocorrendo? Não permitido o que?

    • @algaworks
      @algaworks  5 ปีที่แล้ว

      Oi Ueder, Tudo beleza? Sobre o primeiro erro, você está fazendo uma requisição com o método HTTP POST, mas não existe nada no seu controller mapeado para este método. No seu caso, você está fazendo um POST para /oauth/token, mas não somos nós que mapeamos o /oauth/token, é o próprio Spring Security. Recomendo você verificar se as dependências do pom.xml e as configurações de segurança estão iguais ao do código-fonte da aula. Creio que o segundo prolema irá se resolver quando corrigir o primeiro. #equipeAW

  • @vtsedcfg
    @vtsedcfg 5 ปีที่แล้ว

    Ótima aula, parabéns. Tenho um cenário de uma aplicação hibrida, /aplicacao/web e /aplicacao/api - minha intensão e fazer autenticação múltipla, conforme docs.spring.io/spring-security/site/docs/current/reference/html/jc.html#multiple-httpsecurity - minha pergunta é: há como ter uma autenticação simples básica para meu contexto web e uma OAuth ou JWT para o contexto rest (/api), teria algum exemplo?

    • @algaworks
      @algaworks  5 ปีที่แล้ว

      Olá! Não sei como está a estrutura da sua aplicação. Possível vai ser sim, mas se for como você disse: uma "aplicação híbrida", você vai ter que fazer muita configuração personalizada, principalmente se suas aplicações usarem as mesmas configurações de segurança. Porque do jeito que estas autenticações são feitas no Spring, isso pelo fato dstas implementações serem voltadas para uma aplicação padrão. Talvez precise fazer alguns ajustes personalizados.
      #EquipeAW

  • @maxmendes6096
    @maxmendes6096 4 ปีที่แล้ว

    Olá! É possível obter infos do usuário que foi autenticado, como por exemplo github -> username de quem se autenticou?

  • @arozendojr
    @arozendojr 6 ปีที่แล้ว +2

    Conhece o mcrouter e o memcached?
    Já vez cluster de servidor de sessão?
    Estou com o kubernets instalado,mas o mcrouter está bem difícil.

    • @algaworks
      @algaworks  6 ปีที่แล้ว

      Já usei o memcache e um tempo atrás foi relativamente simples. Hoje estamos usando aqui o Redis pra isso. O Spring até tem um projeto chamado Spring Session Redis que nos ajuda com esse tipo de coisa. Agora, o mcrouter nunca usei. #equipeAW

  • @robsonlirayou
    @robsonlirayou 6 ปีที่แล้ว +1

    Professor boa tarde, tenho uma aplicação Spring Boot Web na qual já esta configurada a segurança e funcionando sem problemas inclusive usando banco não é aquela onde o arquivo de configuração tem o login em memoria, então precisei nesta mesma aplicação expor um serviço criei a classe mapeada com RestController e fui usar o postman para testar, e na aba Authorization informei o usuario e a senha , disse que era do tipo Basic, ao consumir o recurso o que vem apesar de receber um 200 OK é a pagina de login , pode um sistema web também dispor de um recurso REST para seus clientes? ou eu errei em alguma configuração?
    Entendi que posso ter varias instancias de WebSecurityConfigurerAdapter então criei duas uma para logar pelo formulário de login e outra para o Http Basic mais não sei se esta certo ainda tenho o mesmo comportamento pelo Postman

    • @algaworks
      @algaworks  5 ปีที่แล้ว

      Oi Robson. Não há problema. O que você está expondo é apenas um endpoint para seus clientes. #equipeAW

    • @robsonlirayou
      @robsonlirayou 5 ปีที่แล้ว

      @@algaworks Olá boa noite Sr. Thiago! primeiro muito obrigado pelo retorno mais ... não entendi a sua resposta "Não há problema".
      Minha questão é que tenho um sistema Web MVC com o Boot e posteriormente veio a necessidade de expor um recurso queria saber se isto é possível, sei que o comum é ter uma API Rest e criar clientes para ela meu caso foi o contrario nasceu primeiro o sistema em Web, hoje quanto tento consumir o recurso que disponibilizei recebo como retorno no postman o html da tela de login ( tela usada pelo sistema web)

  • @gustavocarvalho7988
    @gustavocarvalho7988 5 ปีที่แล้ว

    Bom dia, fiz exatamente o que está no vídeo e não hora ele não não gerou o cliente_id. Estou usando wildfly 16, SB 2.17.RELEASE e a ultima versão do eclipse.

    • @algaworks
      @algaworks  5 ปีที่แล้ว

      Olá Gustavo! Para este tipo de questão é preciso ver seu código. Reveja o código fonte da aula. Mas se ainda estiver com problemas, você pode entrar na nossa comunidade do Facebook e fazer sua pergunta por lá. O pessoal lá sempre se ajuda e pode ser uma ótima experiência para você. O link é alga.works/comunidade
      Até!
      #EquipeAW

  • @vidadeberenice
    @vidadeberenice 6 ปีที่แล้ว +1

    Criar uma API só para realizar autenticação e gerar o token para consumir os recursos, é uma boa prática? Como ficaria uma estrutura com Spring utilizando micro serviços, e qual o coração desse tipo de arquitetura, ou seja, se essa parte for mal planejada irá dar muita dor de cabeça? Abraços

    • @algaworks
      @algaworks  6 ปีที่แล้ว +1

      Acredito que não compensa. A não ser que você tenha uma aplicação muito grande ou com muitos usuários. Mas se está começando uma nova aplicação, então é melhor deixar junto e deixar para tomar essa decisão depois. #equipeAW

    • @vidadeberenice
      @vidadeberenice 6 ปีที่แล้ว

      Estamos começando a migrar os módulos do nosso ERP para serviços em uma API Rest com Spring Boot. Estamos em média com 200 a 1000 usuários ativos.

    • @heliolima3742
      @heliolima3742 5 ปีที่แล้ว

      Estava refletindo sobre a mesma questão! Acho que faz sentido! Vc começará a desenvolver um serviço de autenticação independente de aplicação! Algo com mais cara de corporativo!

    • @heliolima3742
      @heliolima3742 5 ปีที่แล้ว

      E aí? Qual foi sua decisão sobre a questão? Valeu a pena?

  • @robsonp2000
    @robsonp2000 5 ปีที่แล้ว

    Alguém sabe algum tutorial para fazer a leitura desse serviço que está com a segurança OAuth2 com Android?

  • @MrFelipeGeorge
    @MrFelipeGeorge 6 ปีที่แล้ว +1

    Segui todos os passos desta aula, mas está estourando internal server error... e em outro momentou estourou erro solicitando para implementar o Password.
    pode me ajudar??

    • @algaworks
      @algaworks  6 ปีที่แล้ว

      Oi Felipe, boa tarde. Se você puder postar o log de erro completo, pois é preciso entender melhor de que erro se trata. #equipeAW

  • @danielatm1
    @danielatm1 4 ปีที่แล้ว

    E como eu deixo um recurso liberado? Exemplo:
    Cadastrar usuário (post) liberado, e as consultas (GET) somente com token?

    • @souzaramon9522
      @souzaramon9522 4 ปีที่แล้ว

      Ja descobriu como fazer amigo? :c

    • @danielatm1
      @danielatm1 4 ปีที่แล้ว

      @@souzaramon9522 não.

  • @ALEXANDRADE14
    @ALEXANDRADE14 2 ปีที่แล้ว

    como faço para liberar uma classe especifica para não acessar com autenticação?

    • @algaworks
      @algaworks  2 ปีที่แล้ว +1

      Olá mergulhador, você teria de aplicar as configurações de filtro de segurança, como @PreAuthorize ou com o objeto HttpSecurity

    • @ALEXANDRADE14
      @ALEXANDRADE14 2 ปีที่แล้ว

      Conseguir ignorando a classe

    • @ALEXANDRADE14
      @ALEXANDRADE14 2 ปีที่แล้ว +1

      @@algaworks web.ignoring().antMatchers("/index").
      and().ignoring().antMatchers("/").and().ignoring().antMatchers("/main/free");;

  • @UederCardoso
    @UederCardoso 6 ปีที่แล้ว

    Quando eu acesso uma lista de produtos que está autenticada, não aparece mensagem em json que precisa estar autenticada. Retorna uma página html com login e senha padrão do spring. O que pode contornar isso?

    • @robsonlirayou
      @robsonlirayou 6 ปีที่แล้ว

      Olá Ueder pelo visto vc esta com um problema parecido com o meu, so que eu tenho um sistema web e quero dentro dele ter um recurso rest, conseguiste resolver a tua questão? se puder me ajudar.... agradeço.

    • @UederCardoso
      @UederCardoso 6 ปีที่แล้ว

      @@robsonlirayou O meu problema era que no meu HomeController eu mapeei com a anotação '@GetMapping' sem informar rota no parêntesis para exibir a página inicial na raiz ('/'). E no RestController, fiz '@GetMapping("/produtos")' para listar os produtos. Para resolver o problema, alterei a anotação '@GetMapping' do HomeController que exibia index para '@GetMapping('/')' ou '@RequestMapping("/")' e deu certo. Não retornou mais a página html e consegue que o postman retornasse o token.

    • @UederCardoso
      @UederCardoso 6 ปีที่แล้ว

      Se o seu problema também retorna página html e não autentica, verifique se existe algum '@GetMapping ' que não tem parêntesis e passando rota entre aspas. Se não tiver, substitui por @GetMapping('/sua-rota'). Espero ter ajudado.

    • @robsonlirayou
      @robsonlirayou 6 ปีที่แล้ว

      @@UederCardoso caro obrigado pela interação mais infelizmente não é isto no teu caso se estas seguindo o vídeo vc tem um WS Rest , no meu caso tenho um sistema Web já com a segurança configurada e precisei inserir um recurso Rest nele, passei a tarde aqui na luta e não sai do canto, Valeu mesmo meu prezado.

  • @gireflexconexoes1556
    @gireflexconexoes1556 5 ปีที่แล้ว

    Olá, O meu não aparece a senha de Id e client-secret. Ao iniciar o servidor ele para depois da senha do password. O que deve ser ? A configuração está igual ao do vídeo.

    • @algaworks
      @algaworks  5 ปีที่แล้ว

      Você adicionou o campo grant_type=password no body da sua requisição? #equipeAW

  • @gireflexconexoes1556
    @gireflexconexoes1556 5 ปีที่แล้ว

    Olá, Consegui fazer os procedimentos, na hora de gerar o token, aparece essa mensagem:
    {
    "error": "invalid_request",
    "error_description": "Missing grant type"
    }
    Como eu arrumo isso ? Preciso de uma ajuda urgente, estou fazendo um teste no meu trabalho.
    Obrigado!!!

    • @erivanspe
      @erivanspe 5 ปีที่แล้ว

      No primeiro request pra buscar o token ele inclui no body da requisição o parâmetro 'grant_type' com valor 'password' (que é um dos tipos de fluxo de troca para obter o token usando oauth2), acredito que é só você adicionar esse valor na sua primeira requisição também.

  • @gustavocarvalho7988
    @gustavocarvalho7988 5 ปีที่แล้ว

    Mano, qual foi a mágica que vc usou? Fiz o que você fez no vídeo e não consigo receber o token

    • @algaworks
      @algaworks  5 ปีที่แล้ว

      Olá Gustavo! Siga as dicas que te dei no outro comentário. Reveja o código da aula e use sempre as mesmas versões da aula para conseguir reproduzir o mesmo resultado.
      #EquipeAW

  • @didamendes
    @didamendes 6 ปีที่แล้ว +1

    Essa parte é mais difícil do curso do Full spring. Difícil é cansativo. E até hoje não entendi muita coisa disso.

    • @algaworks
      @algaworks  6 ปีที่แล้ว

      Aqui temos um outro vídeo explicando sobre o Oauth. É bem parecido com o que tem no curso FSAS, mas acredito que pode ajudar: facebook.com/algaworks/videos/2463393303686876/ #equipeAW

  • @marcosmiranda9960
    @marcosmiranda9960 3 ปีที่แล้ว

    o Di Maria ta diferente ahsuduahs