Skip to main content

Configuring authentication

EOS Online Framework 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

Default

Signs the player in with the account associated with the store or platform that the game is launched on. This works for desktop, mobile and console platforms.



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



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 "Platform Setup".

Default, with Cross-Platform Fallback

The 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.

Runtime Platform

This graph only authenticates with the runtime platform, and does not handle the Epic Games Store, Nintendo Switch or the Developer Authentication Tool. You should always use the "Default" or "Default, with Cross-Platform Fallback" authentication graphs instead of this one.

Cross-Platform Only

Players 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.

Anonymous

Players 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.

Overriding platform selected for authentication

If you need to override the specific platform that the plugin attempts to authenticate with, you can set:

[EpicOnlineServices]
AuthServiceOverride=Steam

If you need to utilise this configuration option, please file a support case as we expect the plugin to automatically detect the necessary platform in almost all cases.

Require online play privileges for the signed in user

Some platforms, such as consoles, require an active subscription to use online features, depending on the type of game you are building. If your game should require an active subscription to multiplayer services, set the following configuration option:

[EpicOnlineServices]
RequireOnlinePlayUserPrivilege=True