Opa tudo bem? bom não sei entendi direito a sua dúvida mas basicamente seria assim:
Como funciona a comunicação?
De forma bem, mais bem resumida, quando temos dois ou mais serviços que precisam se comunicar entre si podemos utilizar várias alternativas: HTTP, WebSockets, gRPC e etc...
No caso aqui desta postagem estamos falando exclusivamente de uma WebAPI por cima do protocolo HTTP.
Sendo assim a comunicação é feita idependente de liguagem/framework/OS/Dispositivo pois deste que haja um suporte a HTTP você vai conseguir fazerem as duas aplicações conversarem.
Autentificação entre cliente e servidor(WebApi)
Quando falamos de autentificação/autorização também existem diferentes estratégias que vão desde Certificados até Tokens. Mas basicamente todas vão funcionar na seguinte maneira:
- Cliente faz uma requisição para obter sua "chave de acesso"
- Servidor valida essa requisição e responde com a "chave"
- Cliente utiliza-se dessa chave nas demais requisições para ter acesso a endpoints protegidos.
Uma das estratégias mais utilizadas é do JWT, depois dá uma pesquisada melhor para entender como funciona.
Quando eu digo Cliente me refiro a não só aplicações frontend mas sim qualquer processo que vai Consumir a WebAPI, deste modo um cliente pode ser: app react, mobile, uma cli ou até mesmo outra WebApi (GraphQl é muito utilizado nesses casos).
Utilização do token pelo cliente:
Como citei anteriormente é feito uma especie de Handshake para conseguir um token de acesso, e como o mesmo vai ser tratado vai depender muito de qual estratégia está sendo utilizada. Vou novamente tomar como base o JWT.
Após obter um token JWT é de responsabilidade do cliente armazenar ele de forma segura e para isso também tem várias formas dependendo do tipo de cliente:
- Frontend: Comum armazenar no local/session storage ou até mesmo manter em cookie.
- Mobile: Assim como um frontend tem um local mais "seguro" para guardar o token.
- Api/Servidor: Este pode utilizar de vários métodos: váriaveis de ambiente, serviço de cache, Banco de dados e etc... Neste aqui é mais fácil de manter o token escondido/seguro. SÓ NÃO DEIXA HARD-CODED NO TEU REPOSITÓRIO/CÓDIGO FONTE.
Com base nisso tudo que falei acho que deu pra entender que Cliente/Servidor são idependentes de liguagem, basta seguirem os mesmos protocolos/especificações que as coisas dão certo.
No seu caso, se eu entendi direito, não importa se o servidor é Node, Deno, AspNet, Rust, SpringBoot, Go ou sla... todos vão ser da mesma forma. Basta receber o token e ver a melhor estratégia no seu cliente para armazena-lo. De preferencia que este token seja de curta duração, no Máx. umas 8h, outra coisa que seu servidor pode implementar é CORS ou alguma coisa para validar o audience. Nada vai ser 100% seguro, então melhor ir pelo simples e adicionar camadas a mais como two-factor e etc... Do que ficar tentando reinventar a roda, com certeza que sempre vai ter brechas. Ja vi caso de pessoa colocar umas trocentas VPN só pra entrar no intranet e depois no final o servidor ser Windows Xp 1900 e pedrinha.