Skip to main content

Configuring authentication

EOS Online Subsystem ships with sensible authentication defaults for most games on most platforms. However, you can customize authentication to suite your needs.

You can find the settings for customizing authentication in the Project Settings window in Unreal Engine. You can also customize authentication by editing the DefaultEngine.ini and <Platform>Engine.ini files.

Choosing an authentication graph

The authentication graph tells the game how to obtain credentials from the player to authenticate them with EOS. The default authentication graph picks the right approach based on what store or platform the game was launched on, and then authenticates them with the backend.

You can replace the authentication graph with your own implementation if you want to customize where credentials are obtained, or if you want to change how account linking works. There are also a ton of built-in authentication graphs you can use, which are outlined in the table below.

Available authentication graphs

The following authentication graphs are built into the plugin for you to use.

NameDescription
DefaultSigns the player in with the account associated with the store or platform that the game is launched on. This works for all main stores (such as Steam, Discord, Oculus) as well as platforms such as iOS, Android and consoles.

If the player can't be authenticated with the store or platform the game is launched on, authentication fails.

The only exception is that if you are releasing on GOG Galaxy, you will need to specifically override the game's launch parameters in order to authenticate with the GOG Galaxy SDK. This is because GOG Galaxy does not provide the plugin with a way to automatically detect if the game was launched through the GOG Galaxy launcher.

Note: In order for a particular platform to be used for authentication, you must first configure it by following the setup guides. You can find them located in the documentation sidebar under "Authenticate with".
Default, with Cross-Platform FallbackThe same implementation as the default authentication graph, except that if the user can't be signed in with the native platform or store, they will be asked to interactively sign in with the cross-platform account provider.

If you have Epic Games set as your cross-platform account provider, this will take the form of a web browser launching on desktop and mobile, and a PIN code login on console platforms.
<Platform> OnlyThese graphs only authenticate with the given platform. If the player can't be signed in on that platform, authentication fails.

Typically you will only use these authentication graphs when you want to test authentication on a specific platform. You might also elect to use them in platform-specific INI files such as WindowsEngine.ini if you expect to only release on Steam on Windows and want to prevent users from authenticating another way when the game is launched on that platform.

To discover the INI value to set in a platform-specific INI file, choose the authentication graph you want to use in Project Settings, and then copy the AuthenticationGraph= configuration value from DefaultEngine.ini into the platform-specific INI file.
Cross-Platform OnlyPlayers will only be able to sign in with their cross-platform account interactively. No credentials from the local platform (such as Steam) will be fetched, so the authentication will always be either interactive, or rely on a previously remembered login if the cross-platform account provider supports that.

If the user can't be signed into their cross-platform account, such as if they cancel the interactive login, authentication fails.
AnonymousPlayers will be signed in anonymously. The accounts that are created are tied to the device that the player is signed in on.

This can be a good option for mobile games, if you don't want to ask people to sign in or create an account. However, they won't be able to bring their save data or profile across devices, even of the same platform type.
Anonymous authentication does not work on macOS or console platforms. It is only expected to work on Windows, iOS and Android.

Setting the editor authentication graph

You should leave the editor authentication graph as the default, unless you want to test a particular authentication graph (such as your own) from the editor. This graph will apply when you call AutoLogin as part of a play-in-editor game. It is not used when you enable "login before PIE".

Writing your own custom authentication graph

For a guide on how to write your own authentication graph, please refer to Writing a custom authentication graph.

Choosing a cross-platform account provider

When players sign into your game using the store or platform account system, they'll be signed into your game without any requirement to enter login details. However, they won't be able to bring their game profile to other devices or platforms without a cross-platform account system.

The reason for this is simple: When a player signs into your game with their Steam account, they can sign into your game on any desktop PC that is running Steam. But they can't sign into that account on a mobile device or console, because the Steam client isn't available on those platforms.

To allow players to bring their profile across platforms, you need a cross-platform account provider. You can choose the cross-platform account provider you want to use in Project Settings.

Available cross-platform account providers

The following cross-platform account providers are built into the plugin for you to use.

NameDescription
EpicGames

Refer to Epic Games on how to use Epic Games as a cross-platform account system.

SimpleFirstParty

Refer to Simple First-Party on how to use your own username/password based first-party account system for cross-platform accounts.

Using your own cross-platform account system

For a guide on how to write your own cross-platform account provider, please refer to Using your own cross-platform account system.

Requiring a cross-platform account

If you want to require that all users have a cross-platform account, you can enable "Require Cross Platform Account". In this case, the plugin will try to authenticate users into the cross-platform account system using the store or platform account.

When the user can't be signed in automatically, the user will need to interactively login with their cross-platform account. After this it will be linked with the store or platform account so they don't need to interactively sign in next time. This requires the cross-platform account provider to have implemented account linking (only Epic Games implements this; the simple first-party implementation does not).

Logging in with the Developer Authentication Tool

When you are running the game in the editor (via play-in-editor), the plugin will attempt to authenticate using the EOS Developer Authentication Tool. You can launch it from the EOS dropdown in the toolbar.

For information on how to use the Developer Authentication Tool, refer to Using the Developer Authentication Tool.