Já fiz curso de Java e ASP.Net Core, onde é demonstrado JWT como segurança para APIs, porém o método me parece falho, pois qualquer um que tenha acesso ao token poderá utilizar a API sem nenhum problema.
A minha pergunta está relacionada ao fato de que se eu criar uma SPA (que pode ser acessada de maneira não autenticada) com Angular, por exemplo, quando eu fizer as requisições para a API que utilizada JWT (que a ideia é que seja acessada somente pela SPA e não diretamente), toda a lógica de geração do token estará exposta na página, talvez de uma maneira não muito legível, mas estará. Além disso, com as ferramentas de desenvolvimento dos navegadores, é possível monitorar as requisições e visualizar o token gerado, possibilitando assim consumir a API de qualquer lugar.
Tempos atrás precisava coletar algumas informações de um site, vi que tinha uma API e usava autenticação, peguei o token que foi gerado no próprio site e usei para chamar a API direto, claro, não abusei desse fato, porém consegui usar algo que estava "seguro".
Realmente existe alguma maneira de proteger uma API de acessos indesejados? Tem algum curso aqui na Alura sobre isso?