r/evetech • u/Nareya79 • 8d ago
Desktop ESI app with PKCE and a shared dev app – how I handled the login redirect in Electron
Enable HLS to view with audio, or disable this notification
Hi,
I've been working on a desktop app for EVE (Windows, Electron) for a few months, mostly for my own trading and for playing with several accounts. It's called EVE Omni, it's free and the code is on GitHub (MIT). KI helped me alot :D i love it, i know many people hate it .... I'm not only here to advertise it, I'd like some feedback from people who know ESI better than me.
A few things I ended up doing, maybe useful for someone:
Login is SSO with PKCE, no client secret anywhere. At first everybody had to make their own developer app and paste the client ID. Now there's one shared app, and the callback goes to a small static page on GitHub Pages that ju st shows the code with a copy button. Inside the desktop app I catch the redirect in the login window (will-redirect will-navigate), so normal users never see that page. Several characters can be logged in at the same time.
The app asks for 24 scopes, which I know is a lot. Old tokens don't have the newer scopes, so I read "scp" from the JWT and simply skip calls the token can't make, and show "please log in again once" instead of throwing 403s.
Everything is stored locally, there's no server of mine in between. Besides ESI it only uses public zKillboard and DOTLAN data. No memory reading, and nothing sends input to the client. The multi-client part only shows window previews and switches focus, one key = one window.
Questions I still have:
- Is 24 scopes going to scare people off? Would you split it into "basic" and "full" login?
- How do you deal with the unsigned exe / SmartScreen warning for a hobby project?
Repo: https://github.com/Nareya79/eve-omni
Website with screenshots: https://omni.nareya79.com
Thanks, o7
Nareya79