For long-running server processes possibly initiated by an AJAX call from an SPA client, it's often desirable to be able to receive (and display) status update messages (issued by the server during processing) in your front-end application's UI. In this piece I will discuss the two options of using **websockets** and **SSE** (server sent events), and, with code, show how to implement them using Clojure and ClojureScript.
I discuss the available backends available in the buddy-auth library and how they are implemented. I will then show, for circumstances where the provided back-ends don't meet our needs how we can implement our own.
I will demonstrate how to compile and package a completely operational, but minimal, application comprising a secure Clojure Pedestal API server and a ClojureScript (reagent/reframe) front-end React application; and finally deploy that application to a docker container running as a Docker swarm service with its configuration provided by Docker's secrets functionality.
A longer discussion of my publicly available GitHub repository containing a secured Pedestal API server and ClojureScript/React SPA that can use Google login to authenticate a user. I show how to set up HTTPS, integrate with Google and secure API endpoints in the context of a simple React application.