authWithUserSignature:completion:
用户身份认证
该方法使用从开发者服务端获取的用户签名(User Signature)对 SDK 进行授权。只有在认证成功后,SDK 才能安全地访问游戏资源、同步用户数据及执行与用户身份相关的敏感操作。
方法声明
objectivec
/**
Authenticate the SDK with a user signature.
@param userSignature The signature used to authenticate the user.
@param completion Called when authentication finishes.
*/
+ (void)authWithUserSignature:(NSString *)userSignature
completion:(nullable SUDOPCompletion)completion;参数说明
| 参数名 | 类型 | 必传 | 描述 |
|---|---|---|---|
| userSignature | NSString * | 是 | 服务端生成的加密签名字符串,用于校验用户合法性。 |
| completion | SUDOPCompletion | 否 | 认证完成后的回调。如果签名过期或格式错误,error 将携带具体错误信息。 |
运行行为
- 权限激活:认证成功后,SDK 内部的状态机将转为
Authenticated,允许调用启动游戏等核心接口。 - 令牌管理:SDK 内部会自动管理该次授权的有效期。
- 前置依赖:必须在
initializeWithConfiguration:completion:成功回调后调用。
代码示例
objectivec
// 1. 从您的业务服务器获取 userSignature
NSString *myUserSignature = @"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...";
// 2. 调用 SDK 认证
[SUDOP authWithUserSignature:myUserSignature completion:^(NSError * _Nullable error) {
if (error) {
NSLog(@"用户认证失败: %@", error.localizedDescription);
} else {
NSLog(@"用户认证成功,现在可以启动游戏了");
}
}];注意事项
- 签名获取:
userSignature必须由开发者的服务器生成,严禁在客户端直接计算签名以防密钥(AppKey)泄露。 - 时效性:签名通常具有时效性。如果 SDK 返回签名过期的错误,请重新向服务器请求新签名并再次调用此接口。
- 账号切换:当应用内发生用户切换(Logout/Login)时,应重新调用此方法以更新 SDK 内部的用户上下文。
- 并发调用:在认证尚未完成前,重复调用此接口可能会导致之前的回调被取消或报错。