I'm working on a new client setup, which will also allow two factor authentication (which isn't very special).
What is more special is the Electron & Angular combination to launch the actual client and log you directly in with the API access token.
Practically what this means is that players will log in to my Electron app once, and then they can hit the play button,
and the client will take them straight into the game.
I guess this is a project as much as a show-off. So if the mods decide that this is more suitable in the projects section; just get it moved
The way it works:
1. Log in to Electron app, which gives you an accessToken
2. Click play-button, which launches the client
3. The client passes the accessToken to the server (instead of the username and password we'd normally send)
4. The server checks this accessToken against the API on my web server, which will be used for all services that requires a login
5. Upon accessToken being legit, you'll be logged into the game
If the accessToken isn't legit, you'll meet a incorrect username or password message (for now).
I have some plans to make this a lot nicer in the future. I'm planning to use IPC,
and don't display the actual client until you're actually logged in,
and rather display the cache loading and error messages in the Electron app.
NOTE! The design is a work in progress, the focus here is functionality.
NOTE! When I get in the game, you can see that I load character files.
This is a proof of concept for one account and multiple characters.
A system I'm working on that let's players have multiple characters on one account.
I hope you like my work! If you don't please let me know what I can improve on!
Constructive criticism is always welcome!
Updates:
[22nd of May]
GIF below:
[24th of May]
I've changed the client to show the gameframe after the player successfully logs in.
Which is why it's popping up logged in when I click play. (Reference GIF below)
To better illustrate this thing, I'm not launching the client JAR along with the Electron app.
What it does, it takes what the client prints out, this way I know when the client is fully loaded.
My intention is to start the JAR along with the Electron app, so it's ready sooner.
I still need to add more controls to this thing. Like relaunch the client etc.
I will need to look into a few things as well, to let me open multiple clients (at least 2).
[26th of May]
Replacing the client loading and title screen and showing the loading progress in the launcher.
It also detects when the client window is closed, and let's you launch it again.