Android Sign Up and Authentication
Apple OAuth login processing through external browser. Supports Apple login on Android.
How It Works
- Obtain Apple OAuth URL from PlayNANOO server
- Log in to Apple account in external browser
- Receive token via Deep Link
- 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.
2. Link Account with Token
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
- Account Type Value:
PN_ACCOUNT_APPLE_ID = "APPLE ID"- For detailed information, see Etc > Account Type Information - Member Conversion: See Guest Link > Member Conversion documentation