EOS OnlineSubsystem Plugin Basic Configuration and Usage Issues

I have created a new simple project from the 3rd person template. I have enabled the EOS plugins. I have configured EOS and it starts up properly.

LogEOSSDK: Initializing EOSSDK Version:1.13.1-16972539
LogEOSSDK: LogEOSOverlay: Overlay will not load, because it was explicitly disabled when creating the platform
LogEOSSDK: LogEOSAntiCheat: [AntiCheatClient] Anti-cheat client not available. Verify that the game was started with the correct launcher if you intend to use it.
LogEOSSDK: LogEOSRTC: LibRTCCore: Initializing LibRTC...
LogEOSSDK: LogEOS: Updating Platform SDK Config, Time: 11.641434
LogEOSSDK: LogEOS: SDK Config Platform Update Request Successful, Time: 11.822255

I have created a new blueprint library where I am executing a basic Login function.

FOnlineAccountCredentials* Credentials = new FOnlineAccountCredentials("epic", "user@domain.com", "password");
identityInterface->Login(0, *Credentials);

No matter how this is executed, I always get:
LogOnline: Warning: OSS: Unable to Login() user (0) due to missing auth parameters

If I switch it to use

identityInterface->AutoLogin(0)
it returns
LogOnline: Warning: OSS: Unable to AutoLogin user (0) due to missing auth command line args

even though the command line arguments are getting passed and show up in the log when launched standalone.

The callbacks are registered and fire when the null subsystem is active.

  1. I don’t know what the first parameter of the Credential call should be where it says “epic” above.
  2. Does AutoLogin actually work?
  3. I tried in vain to get the ShooterGame to work through EOS even though it is stated that Epic got it to work, though I see no code or configuration anywhere that would allow me to successfully replicate it.

I have been fighting with EOS for weeks. I’m trying to simply login through EOS and create sessions w/ EOS voice support.

I have successfully gotten the EOS Samples in C++ configured and working. I started down the road of rewriting those into blueprint accessible libraries, but with the EOS OSS and EOS Voice plugins, I would really rather go down that route.

  1. Please. Help.
1 Like

Just a quick note that I have gotten login to work. I will make another reply explaining how I got there, but for now, command line args needs to include auth_type=

-auth_type=accountportal -auth_login=user@domain.com -auth_password=secret
3 Likes

Just had this error and this command line seems to work,
Would love to hear how did you find this out,
Thanks !

I started with documentation for AutoLogin:

which says

Logs the player into the online service using parameters passed on the command line. Expects -AUTH_LOGIN= -AUTH_PASSWORD=. If either are missing, the function returns false and doesn't start the login process

I realize now this is just outdated.

From there. I wanted to figure out where the values we know about would get pulled, so I searched source GitHub for “auth_login”:

https://github.com/EpicGames/UnrealEngine/search?q=auth_login

And since I’m using EOS, went straight to the bottom for:
https://github.com/EpicGames/UnrealEngine/blob/9e0f5f2a419a75b83392c44bf75462366ca8c1e2/Engine/Plugins/Online/OnlineSubsystemEOS/Source/OnlineSubsystemEOS/Private/UserManagerEOS.cpp

Which has the AutoLogin function, which contains:

	FParse::Value(FCommandLine::Get(), TEXT("AUTH_LOGIN="), LoginId);
	FParse::Value(FCommandLine::Get(), TEXT("AUTH_PASSWORD="), Password);
	FParse::Value(FCommandLine::Get(), TEXT("AUTH_TYPE="), AuthType);

	if (EOSSubsystem->bIsDefaultOSS && (LoginId.IsEmpty() || Password.IsEmpty() || AuthType.IsEmpty()))
	{
		UE_LOG_ONLINE(Warning, TEXT("Unable to AutoLogin user (%d) due to missing auth command line args"), LocalUserNum);

So we have the command line parameters and the error received.

From there AutoLogin calls login, so line 319:
bool FUserManagerEOS::Login(int32 LocalUserNum, const FOnlineAccountCredentials& AccountCredentials)

If you look in there, you’ll find the logic that selects which EOS game services to use for authentication. Below that, you’ll find if/else tree which contains the checks for the auth-type:

else if (AccountCredentials.Type == TEXT("accountportal"))
	{
		// This is auth via the EOS Account Portal
		Credentials.Type = EOS_ELoginCredentialType::EOS_LCT_AccountPortal;
	}

Which sets the Credential type to the proper enum value.

Hope that gives you some insight. I’m finding that search on GitHub in the engine repo is the way to find what I need when the docs don’t provide.

Good luck.

4 Likes