I think currently the simpliest solution is to use https://github.com/jeff-zucker/solid-auth-cli and give your server-side service a WebID, then let it do what a human can do automatically.
For details: Solid-auth-cli - browserless persistent login
This approach handles most of our use cases, except of custom DB support and Push Notification.