I am using the shared cloud and want to have my player portal allow for both username/password or steam login. I followed the Setup Steam as an identity provider guide.
But on my custom player portal (using Next.js + Next-auth v5) I only ever see the email/password option. I am using authorization grant flow with PKCE and state checks. I notice the URL I end up getting redirected to (via the iam/v3/oauth/authorize) is https://prod.gamingservices.accelbyte.io/auth/login but the guides screenshot URL shows “auth-v2” not sure if that means anything though. Otherwise the URLs look pretty similar minus the different client ids and callbacks.
I see in the swagger docs for the authorize endpoint there is a query parameter target_auth_page but it is not clear how to use it or if it is what I should use.
Is there some parameter or configuration step I could have missed?
Apologies for the delayed response. It seems there’s a misleading detail in our documentation regarding the Custom Player Portal. Currently, Steam web authentication isn’t supported for Shared Cloud. This results in IAM redirecting the web login to the AccelByte login website URL instead.
If I directly support Steam OAuth Login on my custom portal is there any way to exchange a third-party (Steam) access token for an Accelbyte access token?
There is a workaround to use Steam OAuth Login in your custom player portal. Your portal must perform Steam OpenID authentication to obtain the Steam authentication ticket, which can then be passed to the AGS Platform Token API to retrieve the AGS access token.
Example flow:
Setup the steamopenid login method in Auth & Account Linking menu
The custom backend should extract all query parameters from the Steam redirect URL and append them to the following URL https://steamcommunity.com/openid/login.
If everything is set up correctly, AGS platform will register the user Steam ID (if it’s a new user) or log in the user (if it’s an existing user), and then return the AGS access token.
Hope this helps and gives you the insight you need.
Thank you