Buenas noches hijos de vuestras respectivas madres.
Tengo los ojos secos ya del tiempo que llevo leyendo documentación y viendo vídeos en referencia al estándar OAuth2 para autorización y su extensión OpenID para autenticación y no es que haya avanzado mucho que digamos. Como resource y authorization server me he decidido por Okta, más que nada porque tienen varios vídeos de charlas en las que explican las causas y el porqué de las soluciones que aplican y me ha sido bastante fácil seguirlos, así que ante el desconocimiento pues les he dado un voto de confianza. Para el backend, con Spring Boot y la dependencia Okta Starter no he tenido mayor problema; te dan todo bastante mascadito ya que sólo tienes que añadir el issuer y especificar el audience por defecto de la API de Okta que se encargará de gestionar el token bajo el estándar JWT. Después anotar los endpoints de los controladores cuyo uso quieres que sea autorizado -todos en mi caso- y reflejar esta estructura en un archivo de configuración que extiende de WebConfigurationAdapter si la memoria no me falla. Hasta ahí vamos a suponer que bien ya que las consultas con Insomnia me devolvían 401 por authorization required.
El problema ha venido con el frontend y Vue 3 en particular. En primer lugar por el debate de si usar PKCE en una SPA con autorización implícita por la inseguridad que ello conlleva, más tarde, trasteando con las opciones he visto que existía la opción de añadir el modo autorefresh token como versión alpha, luego y esto ya a título personal, pensando en que si voy a subirlo a GitHub, la información sensible no debería estar visible en el configuration.properties para lo cual es visto algo muy por encima de vaults por un lado y jasypt por otro, y lo último y más gracioso, que después de haberme dejado las córneas con esta mierda, he comprobado que { OktaAuth } y OktaVue no son compatibles con Vue 3 cuando he ido a generar las configuraciones.
Así que en vista del tremendo fail acudo a vuestra inconmensurable sabiduría... ¿qué enfoque es el más recomendable hoy en día para añadir seguridad al consumo de una API? Si puede ser compatible con Vue 3.