Не отправляется электронное письмо с подтверждением кода Gigya Swift SDK при регистрации - PullRequest
1 голос
/ 05 мая 2020

Работаем над написанием функции моста для регистрации нового пользователя в Гиге. Или процесс регистрации настроен на отправку электронного письма с подтверждением кода при регистрации нового пользователя. Кажется, это не срабатывает при регистрации через Swift SDK. Мне что-то не хватает в способе отправки запроса?

swift ...

@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)
        }
      }
    }
  }

obj c ...

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;
}

Я могу видеть новых пользователей, созданных на вкладке доступа к идентификации сайтов, но письмо с подтверждением кода не отправляется.

1 Ответ

0 голосов
/ 05 мая 2020

Для тех, кто столкнется с этим в будущем. При регистрации через 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)
      }
    }
  }
...