iOS 注册及认证
使用 Apple ID 进行注册和认证。
URL 确认
此 API 使用 service-account.playnanoo.com 域名。
Apple 认证 SDK 注册
下载 Apple 认证 Unity Package 并导入到项目中。
API 信息
- URL:
https://service-account.playnanoo.com/api/v20240101/social/signin - Method:
PUT - 需要认证: 否
请求参数
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
| account_token | string | 必需 | 社交登录令牌(Apple ID Token) |
| account_type | string | 必需 | 账户类型(PN_ACCOUNT_APPLE_ID = "APPLE ID") |
DeviceInfo 继承
此 API 的 Req 类继承自 DeviceInfo。DeviceInfo 的所有属性将自动包含。
响应数据
Res 类
| 字段 | 类型 | 说明 |
|---|---|---|
| Token | SerializeTokenData | 令牌信息 |
| Player | SerializePlayerData | 玩家信息 |
SerializeTokenData 结构
| 字段 | 类型 | 说明 |
|---|---|---|
| AccessToken | string | 访问令牌 |
| RefreshToken | string | 刷新令牌 |
SerializePlayerData 结构
| 字段 | 类型 | 说明 |
|---|---|---|
| UserUniqueID | string | 用户唯一 ID |
| OpenID | string | 开放 ID |
| Nickname | string | 昵称 |
| LinkedID | string | 关联 ID |
| LinkedType | string | 关联类型 |
| PurchaseCount | int | 购买次数 |
| PurchaseCurrencyCode | string | 购买货币代码 |
| PurchaseTotalPrice | double | 购买总金额 |
| PurchaseVoidedCount | int | 退款次数 |
| PurchaseVoidedCurrencyCode | string | 退款货币代码 |
| PurchaseVoidedTotalPrice | double | 退款总金额 |
| Country | string | 国家 |
| Timezone | string | 时区 |
| Offset | int | 时间偏移量 |
| JoinPeriod | int | 注册时长 |
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
}
参考
- 账户类型值:
PN_ACCOUNT_APPLE_ID = "APPLE ID"- 详细信息请参考 其他 > 账户类型信息 - 会员转换:请参考 游客关联 > 会员转换 文档