-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ADR - Authentication and authorization flows in client and server #4
Comments
I think for the MVP we can ignore server auth to the "system" for now and focus only on client auth. The benefit to client auth is that it provides a pathway mechanism for player identity/uniqueness as well as authentication. I had built a prototype lobby that would authenticate against RHSSO (where RHSSO was tied into GitHub auth): The Javascript Phaser client got wrapped with Node.js and also did some ugly JWT auth: Proposal for client auth
Considerations
NotesThere is a future consideration of persistent state ("user account") due to the nature of the game. At some point the auth flow may need to include some kind of account creation process. We have not settled on a persistent state engine, and it might be nice to include a partner (CockroachDB). |
This sounds good to me. I think we might need to dig into specifics of what is and isn't allowed with an expired session. Also, play with expiration times to ensure they won't expire during any "typical" gameplay session.
|
The persistent state engine will probably need a fronting service and API access - that will be a good place to validate the JWT token (or redirect to do auth) as well. What you thinking "user account" will store? I'm thinking persistence-wise we need a place to keep player callsign... but also in the future potentially the ship inventory and ship customizations, player preferences, achievements, history of player combat metrics, etc... This might need its own ADR, but the persistent state note made me think that we should roughly design the data models and figure out if it will be one or more microservices, and what they will look like. |
Being worked on by redhat-gamedev/srt-godot-client#54 and @bartoval |
ADR Context / Overview
Multiple authentication flows are required for both the client and the server.
Decision
<Describe here our response to these forces, that is, the design decision that was made. State the decision in full sentences, with active voice ("We will...").>
Rationale
<Describe here the rationale for the design decision. Also indicate the rationale for significant rejected alternatives. This section may also indicate assumptions, constraints, requirements, and results of evaluations and experiments.>
Status
<[Proposed | Accepted | Deprecated | Superseded]
If deprecated, indicate why. If superseded, include a link to the new ADR. >
Consequences
<Describe here the resulting context, after applying the decision. All consequences should be listed, not just the "positive" ones. >
Authors
< at anyone involved in the decision >
The text was updated successfully, but these errors were encountered: