Trouble implementing EOS_Connect_Login with OnlineServicesEOSGS in UE5

Hi everyone,

I’m trying to implement EOS_Connect_Login using the OnlineServicesEOSGS subsystem in Unreal Engine 5, but I’m not sure how to properly configure it. Has anyone managed to get this working?

Here’s the login function I’m using:

void UEOSGameInstanceSubsystem::LoginWithAccessToken(const FString& CognitoToken, FPlatformUserId PlatformUserId)
{
UE::Online::FAuthLogin::Params Params;
Params.CredentialsType = UE::Online::LoginCredentialsType::ExternalAuth;
Params.PlatformUserId = PlatformUserId;
Params.CredentialsToken.EmplaceUE::Online::FExternalAuthToken(
UE::Online::FExternalAuthToken{ UE::Online::ExternalLoginType::OpenIdAccessToken, CognitoToken });

OnlineServicesInfoInternal->AuthInterfaceEOSGS->Login(MoveTemp(Params)).OnComplete([](const UE::Online::TOnlineResult<UE::Online::FAuthLogin>& Result)
{
    if (Result.IsOk())
    {
        UE_LOG(LogTemp, Warning, TEXT("Login Success!"));
    }
    else
    {
        UE_LOG(LogTemp, Warning, TEXT("Login Failed! %s"), *Result.GetErrorValue().GetLogString());
    }
});

}

However, I’m receiving the following error:

LogEOSSDK: Error: LogEOSAuth: Invalid parameter EOS_Auth_Credentials.ExternalType reason: invalid type
LogOnlineServices: Warning: [FAuthEOS::Login] Failure: LoginEASImpl invalid_params (EOS_InvalidParameters)
LogTemp: Warning: Login Failed! invalid_params (EOS_InvalidParameters)

I suspect the system is attempting to call LoginEASImpl instead of LoginConnectImpl, even though I intend to use EOS_Connect_Login. I have a suspicion that this might be due to the AuthEOSGSLoginConfig.EASAuthEnabled setting.

I’ve tried disabling EASAuthEnabled with:
[OnlineServices.Login]
EASAuthEnabled=false

But it doesn’t seem to affect the behavior.

Has anyone successfully configured the system to use EOS_Connect_Login (via LoginConnectImpl) with OpenID tokens (e.g., Cognito)? Any advice or example configurations would be greatly appreciated.

Thanks in advance!

Hello there @Knmak3d!

Checking around the community, this issue has popped up in other sccenarios. The main error to consider is LogEOSSDK: Error: Invalid parameter EOS_Auth_Credentials.ExternalType reason: invalid type, which aims at a routing issue with your credentials.

From what I could gather, the following changes are recommended:

  • Set EASAuthEnabled=false in EOSGS:

[OnlineServicesEOSGS.Login]
EASAuthEnabled=false

[OnlineServices]
DefaultSubsystem=EOSGS

  • Switch ExternalAuth to ConnectToken

Params.CredentialsType = UE::Online::LoginCredentialsType::ConnectToken;
Params.PlatformUserId = PlatformUserId;
Params.CredentialsToken.Emplace(UE::Online::FConnectToken{ CognitoToken });