Skip to main content

Android Sign Up and Authentication

Apple OAuth login processing through external browser. Supports Apple login on Android.

How It Works
  1. Obtain Apple OAuth URL from PlayNANOO server
  2. Log in to Apple account in external browser
  3. Receive token via Deep Link
  4. Call account registration (SocialSignIn) or member conversion (SocialChange) API with token

Unity Implementation

using System;
using System.Collections;
using UnityEngine;
using UnityEngine.Networking;

/// <summary>
/// Apple Sign In (Android/iOS)
/// Apple OAuth login processing through external browser
/// </summary>
public class iOSSignin : MonoBehaviour
{
[Serializable]
private class AppleUrlResponse : BaseResponse
{
public string Url;
}

void Start()
{
Application.deepLinkActivated += OnDeepLink;
}

void OnDestroy()
{
Application.deepLinkActivated -= OnDeepLink;
}

/// <summary>
/// Start Apple login
/// </summary>
public void Sign_in_with_Apple()
{
StartCoroutine(GetAppleUrlAndOpen());
}

private IEnumerator GetAppleUrlAndOpen()
{
yield return HttpClient.Send<object, AppleUrlResponse>(
UnityWebRequest.kHttpVerbGET,
"https://service-account.playnanoo.com/api/apple/url",
requireToken: false,
body: null,
onSuccess: (response) =>
{
if (!string.IsNullOrEmpty(response.Url))
{
Application.OpenURL(response.Url);
}
},
onError: (error) => { }
);
}

private void OnDeepLink(string url)
{
if (url.Contains("type=apple"))
{
string status = ExtractParam(url, "status");
string token = ExtractParam(url, "token");

if (status == "success" && !string.IsNullOrEmpty(token))
{
SendTokenToServer(token);
}
}
}

private void SendTokenToServer(string token)
{
// Proceed with SocialChange or SocialSignIn using token value
//SocialChange(token, PN_ACCOUNT_APPLE_ID);
// or
//SocialSignIn(token, PN_ACCOUNT_APPLE_ID);
}

private string ExtractParam(string url, string key)
{
string search = key + "=";
if (url.Contains(search))
{
int start = url.IndexOf(search) + search.Length;
int end = url.IndexOf("&", start);
if (end == -1) end = url.Length;
return url.Substring(start, end - start);
}
return null;
}
}

How to Use

1. Start Apple Login

Sign_in_with_Apple();

An external browser opens and the user logs in with their Apple account.

After authentication is complete, call the PlayNANOO API with the token received in the SendTokenToServer method:

New Login (SocialSignIn)

public void SocialSignIn(string token, string accountType)
{
// First login with Apple account
//accountType : PN_ACCOUNT_APPLE_ID
}

Member Conversion (SocialChange)

public void SocialChange(string token, string accountType)
{
// Convert from guest to Apple member
//accountType : PN_ACCOUNT_APPLE_ID
}
References