Skip to content

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;

参数说明

参数名类型必传描述
userSignatureNSString *服务端生成的加密签名字符串,用于校验用户合法性。
completionSUDOPCompletion认证完成后的回调。如果签名过期或格式错误,error 将携带具体错误信息。

运行行为

  1. 权限激活:认证成功后,SDK 内部的状态机将转为 Authenticated,允许调用启动游戏等核心接口。
  2. 令牌管理:SDK 内部会自动管理该次授权的有效期。
  3. 前置依赖:必须在 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 内部的用户上下文。
  • 并发调用:在认证尚未完成前,重复调用此接口可能会导致之前的回调被取消或报错。