Cross Platform Online Authentication

Hi,

I’m looking at building a cross platform Android and iOS title in Unreal.

We’re looking at using Amazon Cognito for our authentication services and Lambda and DynamoDb for our backend.

I’m stuck before I can even begin. We were hoping to use a cross platform external authentication service to allow cross platform accounts on our back end. I’d assumed we’d be able to use Google accounts or Facebook accounts as they provide easy OAuth tokens that can be supplied to Cognito for federation. However it seems that Unreal doesn’t supply a cross platform OnlineSubsystem.

Has anyone else encountered this scenario and come up with a solution?

Is there a reason why the GPGS C++ SDK in Unreal is only supported on Android given it also supports iOS?

Is there a reason why Facebook isn’t supported on Android?

Is there any work in the pipeline for adding more social authenticators to make life easier for back end authentication with AWS or Azure?

It there any work in the pipeline to make integrating JAR libraries on Android per project rather than requiring engine level changes? I’m loath to do this and then have to start integrating changes. I expect there to be a reasonable amount of change in the mobile area given it’s current state.

Any responses would be greatly appreciated.

Thanks.

Hi bonus_uk,

I don’t know why GPGS isn’t implemented for iOS, but it is likely because it made more sense to support Apple’s system first. As for Facebook on Android, it is on the roadmap.

There is a way to deal with integrating JAR libraries on a per project basis using the AndroidPluginLanguage. You may either make a plugin or make a code project and add registration of the APL XML file in the build.cs:


			if (Target.Platform == UnrealTargetPlatform.Android)
			{
				string PluginPath = Utils.MakePathRelativeTo(ModuleDirectory, BuildConfiguration.RelativeEnginePath);
				AdditionalPropertiesForReceipt.Add(new ReceiptProperty("AndroidPlugin", Path.Combine(PluginPath, "My_APL.xml")));
			}

You can use the resourceCopies section to copy JAR files or so’s. GearVR_APL.xml in the Plugins/Runtime/GearVR directory is an example. There is documentation for the APL commands and sections in a comment block at the top of AndroidPluginLanguage.cs.

Awesome, thanks very much Chris.

I’ll give these a go and get back with my progress.

I’ll try integrating the Azure SDK this way as it includes wrappers for all of the relevant social authenticators and I’ll write up a Wiki page on how to achieve this if all goes well.