-
Notifications
You must be signed in to change notification settings - Fork 54
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
Requirements and design for accounts #487
Draft
bigbluejay9
wants to merge
2
commits into
beyond-all-reason:master
Choose a base branch
from
bigbluejay9:accounts
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
# Integrating with Steam and other game store accounts | ||
|
||
# Requirements | ||
|
||
## Seamless Steam Accounts | ||
|
||
- Users launching BAR on Steam must be able to login for online play without | ||
the need for registration. | ||
- This user experience is unlike the current flow which requires registration | ||
prior to online play. | ||
- Users must be able to manage their account on server4.beyondallreason.info. | ||
- If the user has never registered automatically by launching BAR on Steam, | ||
server4.beyondallreason.info must provide a registration flow with Steam as | ||
the ID provider. | ||
- If the user has registered via Steam, a 'login with steam' button must be | ||
provided on server4.beyondallreason.info. | ||
|
||
## Upgrade Path For Current Players | ||
|
||
- Players with pre-existing BAR accounts (henceforce called 'legacy accounts') | ||
must be able to migrate seamlessly onto Steam. To comply with the | ||
[no smurfs rule](https://www.beyondallreason.info/code-of-conduct#5-unfair-advantages) | ||
note the following: | ||
- Players may create a new account linked to Steam and link the newly created | ||
Steam account with their legacy account. | ||
- Legacy account owners may unknowingly start BAR on Steam and play with | ||
the new Steam account prior to linking their legacy accounts - resulting | ||
in unintentional 'smurfs'. We must provide clear policy guidance, e.g. a | ||
possible grace period for 'accidently' playing on these smurfs, send | ||
notifications for these 'smurfs' to link their accounts. | ||
- Alternately, players must be able to log into their legacy accounts via | ||
server4.beyondallreason.info and link to a Steam account. | ||
|
||
## (Stretch) Support For Additional Game Stores | ||
|
||
- We may want to also have the same Steam experience with other game stores | ||
(e.g. Epic Games). | ||
- The design should allow any account to be linked to any number of additional game stores. | ||
|
||
## (Stretch) Support For Unlinking | ||
|
||
- We may provide the ability for players to request accounts to be unlinked. | ||
|
||
## (Stretch) Deprecation of Legacy Account Creation | ||
|
||
- Once BAR on Steam is generally available, we may no longer support the | ||
creation of accounts through the current flow, i.e. through BYAR-Chobby via the | ||
[REGISTER](https://springrts.com/dl/LobbyProtocol/ProtocolDescription.html#REGISTER:client) | ||
command. | ||
|
||
# Additional Thoughts (Unorganized) | ||
|
||
## Support additional identity providers | ||
|
||
We should not restrict players from authenticating via any of their preferred | ||
methods: | ||
- Via the legacy flow | ||
- Through the web portal at server4.beyondallreason.info | ||
- [LOGIN](https://springrts.com/dl/LobbyProtocol/ProtocolDescription.html#LOGIN:client) | ||
- Using Steam as the ID provider | ||
- Using any other game store as the ID provider. | ||
- Using any identity provider? (Login via Facebook??) | ||
|
||
When evolving the account system, adding any number of additional ID providers | ||
should be part of the 'regular flow'. | ||
|
||
## Unique In Game Identifier | ||
|
||
Steam allows users to rename themselves at any time. Additionally, Steam in game | ||
names are not necessarily unique. | ||
|
||
- BAR Replays already store the 'accountid' of the player. However, replays also | ||
store the name of the player which should now be treated as ephemeral. | ||
- How do we deal with renaming while allowing searching replays? | ||
- Any UI can no longer display the player name as stored in the replay file, | ||
but must instead use the stored 'accountid' to lookup the current player | ||
name. | ||
- How does this experience work when players want to lookup a specific match | ||
in their history? I.e. a player may say "Oh I want to lookup the match I had | ||
against 'Zow' in the past", but 'Zow' has renamed to 'Clyret'. | ||
|
||
## Linking Accounts | ||
|
||
When linking accounts, how do we merge the data? | ||
|
||
A simple first implementation would be to just take the data of the older | ||
account. |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this something that could impact self hosted servers? Definitely something for the very far future though.