首页 > 解决方案 > 注册 Gigya Swift SDK 代码验证电子邮件未发送

问题描述

正在编写用于在 Gigya 中注册新用户的桥接函数。或者注册流程设置为在注册新用户时发送验证码邮件。通过 Swift SDK 注册时,这似乎没有触发。我在发送请求的方式上是否遗漏了什么?

迅速...

@objc(registerAccount:password:params:resolve:rejecter:)
  func registerAccount(email: String, password: String, params: [String : Any],
                       _ resolve: @escaping RCTPromiseResolveBlock,
                       rejecter reject: @escaping RCTPromiseRejectBlock) -> Void {
    self.gigya.register(email: email, password: password, params: params) { result in
      switch result {
      case .success(let data):
        resolve(data);
      case .failure(let error):
        switch error.error {
        case .gigyaError(let data):
          resolve(data.toDictionary())
        default:
          reject("E_REGISTER_ACCOUNT", "Registration failed", error.error)
        }
      }
    }
  }

对象...

RCT_EXTERN_METHOD(registerAccount:(NSString *)email
                  password:(NSString *)password
                  params:(NSDictionary *)params
                  resolve:(RCTPromiseResolveBlock)resolve
                  rejecter:(RCTPromiseRejectBlock)reject)

最后这被JS调用......

export async function register() {
  const email = 'test-registration@purple.com';
  const password = '234567';
  const req = await GIGYA_MANAGER.registerAccount(
    email,
    password,
    {
      finalizeRegistration: true,
      profile: {
        email: email,
        firstName: 'Stella',
        lastName: 'Beaglesmith'
      }
    }
  ).catch((err) => console.log(err));
  return req;
}

我能够看到在站点身份访问选项卡中创建的新用户,但似乎没有发送代码验证电子邮件。

标签: swiftreact-nativegigya

解决方案


对于将来遇到此问题的任何人。通过 API 注册时,您需要手动发送验证,因此在 Swift 中,您将拥有如下所示的方法...

@objc(resendVerificationCode:regToken:resolve:rejecter:)
  func resendVerificationCode(UID: String, regToken: String,
                              _ resolve: @escaping RCTPromiseResolveBlock,
                              rejecter reject: @escaping RCTPromiseRejectBlock) -> Void {
    self.gigya.send(api: "accounts.resendVerificationCode", params: [
      "UID": UID,
      "regToken": regToken
    ]) { result in
      switch result {
      case .success(let data):
        print(data.values)
      case .failure(let error):
        print(error)
      }
    }
  }

推荐阅读