Hi, I've been digging around extensively on how to get our game-website to handle account linking and I've hit a wall when it comes to allow a user to link their Steam account.
Feature request
Create api endpoint similar to how we can sign in a steam user using the Server/LoginWithSteamId, having an equivalent of that for linking an account would seem obvious.
Example:
POST Server/LinkSteamAccountWithSteamId
Header: X-SecretKey
RequestBody:
{
SessionTicket: string, // Playfab Session Ticket
SteamId: number, // SteamId
ForceLink: boolean // Same Forcelink as the other account linking calls
}
Use Case
The game would login directly to Steam and any other provider through their respective SDK integrations. The website would allow for login and account linking. See flow below
Login
Game steps
SteamSDK get SessionTicket
POST Client/LoginWithSteam
Receive valid PlayFabSessionTicket.
Website steps (https://partner.steamgames.com/doc/features/auth#website)
User clicks "Login with Steam"
User is redirected to steam login page
User logs in on steam login page and is redirected back to the game-website
Validate data returned in query string
Extract SteamId
POST Server/LoginWithSteamId
Receive valid PlayFabSessionTicket.
Account Linking - Intended to be handled from the website only
Website
Login using playfab or other method.
Receive valid PlayFabSessionTicket.
User clicks the Link Steam Account button (on game-website)
Redirect to steam login page
User logs in on steam login page and is redirected back to the game-website
Validate data returned in query string
Extract SteamId
[Missing path here] Would ideally call POST Server/LinkSteamAccountWithSteamId
Steam does not grant access to a SessionTicket without access to a signed in steam process on the same machine, that I know of at least.