(EDIT: This is for a premium PC game, so the login flow example for a free mobile game doesn't help much, unfortunately. People already purchased the game by the time they get to this screen + want to ensure they purchased the game. The login example on GitHub is deprecated and tells us to look at recipes for an example, but there was never a login example added to the recipes O__o)
Currently, this is our login flow:
- Semi-Anon login via device ID to get title data
- Register/Login via FB ||
Register/Login via email+pass (NEW account - not attached to semi login). - Verify inventory upon logging in -- if a "game key" item in playfab inventory, allow access.
IF NO KEY, advertise purchase.
Now that we have Steam, I'm a bit confused when to add Steam automatically:
- Semi-Anon login via device ID to get title data
- Register/Login via FB ||
Register/Login via email+pass (NEW account - not attached to semi login) ||
Register/Login via Steam - Upon logging in successfully, automatically link current Steam account (probably FORCEFULLY?).
- Verify inventory upon logging in -- if a "game key" item in playfab inventory, let them in.
IF NO KEY, check current Steam account (via Steamworks API) if they have a verified key for your game.
IF STILL NO KEY, advertise purchase.
_______________________________
QUESTIONS:
- Would this flow work well?
- What is the recommended flow?
- Any tips to do this better?
_________________________________________________________
CONCERNS:
- Let's say the game key is verified through Steamworks - I add a game key to their inventory. What if they made a new account, linked the same Steamworks that has a key, and logged in again? That means THAT account will also get a "free game key". They could potentially do this unlimited times.
- Let's say that the game key is verified through Steamworks - and I don't add a game key to their inventory. I wouldn't ever know if they have a game key if they login via our website because they won't have a PF inventory item for the game key.
Obviously there's something wrong with this flow. I'd love to know what that is :)