Estoy usando react-stomp de la siguiente manera:
importar React desde 'react'; importar SockJsClient desde 'react-stomp';
render() { return ( <div> <SockJsClient url={MY_WS_ENDPOINT + this.wsCredentials} topics={['/topics/all']} onMessage={(msg) => { console.log(msg); }} ref={ (client) => { this.clientRef = client }} /> </div> ); } }El servidor está construido usando Springboot, y la configuración es:
configuración de seguridad:
@Configuration public class WebSocketSecurityConfig extends AbstractSecurityWebSocketMessageBrokerConfigurer { @Override protected void configureInbound(MessageSecurityMetadataSourceRegistry messages) { messages .simpDestMatchers(MY_WS_ENDPOINT + "/**").authenticated() .anyMessage().authenticated(); } @Override protected boolean sameOriginDisabled() { return true; } }Configuración de WebSocket:
@Configuration @EnableWebSocketMessageBroker public class WebSocketConfig implements WebSocketMessageBrokerConfigurer { @Override public void registerStompEndpoints(final StompEndpointRegistry registry) { registry.addEndpoint(MY_WS_ENDPOINT) .setAllowedOrigins("*") .withSockJS(); } @Override public void configureMessageBroker(final MessageBrokerRegistry registry) { registry.setApplicationDestinationPrefixes("/") .enableSimpleBroker(WS_SIMPLE_BROKER.toArray(new String[0])); } }Después de un tiempo, el token caduca y el cliente continúa intentando actualizar el estado desde el servidor y obtiene errores 401 para siempre. ¿Hay algún enfoque en el que pueda redirigir a la página de inicio de sesión una vez que se recibe el primer error 401?
Gracias (lo siento, bastante novato con esta tecnología).