跳转到主要内容

iOS 注册及认证

使用 Apple ID 进行注册和认证。

URL 确认

此 API 使用 service-account.playnanoo.com 域名。

Apple 认证 SDK 注册

下载 Apple 认证 Unity Package 并导入到项目中。

下载 Apple 认证 Unity 包

API 信息

  • URL: https://service-account.playnanoo.com/api/v20240101/social/signin
  • Method: PUT
  • 需要认证: 否

请求参数

参数类型必需说明
account_tokenstring必需社交登录令牌(Apple ID Token)
account_typestring必需账户类型(PN_ACCOUNT_APPLE_ID = "APPLE ID")
DeviceInfo 继承

此 API 的 Req 类继承自 DeviceInfo。DeviceInfo 的所有属性将自动包含。

响应数据

Res 类

字段类型说明
TokenSerializeTokenData令牌信息
PlayerSerializePlayerData玩家信息

SerializeTokenData 结构

字段类型说明
AccessTokenstring访问令牌
RefreshTokenstring刷新令牌

SerializePlayerData 结构

字段类型说明
UserUniqueIDstring用户唯一 ID
OpenIDstring开放 ID
Nicknamestring昵称
LinkedIDstring关联 ID
LinkedTypestring关联类型
PurchaseCountint购买次数
PurchaseCurrencyCodestring购买货币代码
PurchaseTotalPricedouble购买总金额
PurchaseVoidedCountint退款次数
PurchaseVoidedCurrencyCodestring退款货币代码
PurchaseVoidedTotalPricedouble退款总金额
Countrystring国家
Timezonestring时区
Offsetint时间偏移量
JoinPeriodint注册时长

Unity C# 实现

using AppleAuth;
using AppleAuth.Native;
using AppleAuth.Enums;
using AppleAuth.Extensions;
using AppleAuth.Interfaces;
using UnityEngine;
using System.Text;

public class AppleSignInExample : MonoBehaviour
{
IAppleAuthManager _appleAuthManager;

void Start()
{
if (AppleAuthManager.IsCurrentPlatformSupported)
{
var deserializer = new PayloadDeserializer();
_appleAuthManager = new AppleAuthManager(deserializer);
}
}

private void Update()
{
_appleAuthManager?.Update();
}

public void SignIn()
{
var loginArgs = new AppleAuthLoginArgs();

_appleAuthManager.LoginWithAppleId(
loginArgs,
credential =>
{
var appleIdCredential = credential as IAppleIDCredential;
if (appleIdCredential != null)
{
string idToken = Encoding.UTF8.GetString(
appleIdCredential.IdentityToken,
0,
appleIdCredential.IdentityToken.Length
);

// SocialSignin API 호출
SocialSignin(idToken);
}
},
error =>
{
var authorizationErrorCode = error.GetAuthorizationErrorCode();
Debug.LogError($"Apple 인증 실패: {authorizationErrorCode}");
}
);
}

private void SocialSignin(string token)
{
//SocialSignIn(token, PN_ACCOUNT_APPLE_ID);
}
}

使用方法

1. 开始 Apple 登录

SignIn();

显示 Apple 登录窗口,用户使用 Apple 账户进行认证。

2. 使用令牌进行账户关联

认证完成后,使用 SendTokenToServer 方法中获取的 token 调用 PlayNANOO API:

新登录(SocialSignIn)

public void SocialSignIn(string token, string accountType)
{
// Apple 账户首次登录
//accountType : PN_ACCOUNT_APPLE_ID
}
参考