loginByThirdPart static method

Future<AuthResult> loginByThirdPart(
  1. String code,
  2. String connection,
  3. String extIdpConnidentifier, [
  4. LoginOptions? options,
])

login by ThirdPart.

Implementation

static Future<AuthResult> loginByThirdPart(
    String code, String connection, String extIdpConnidentifier,
    [LoginOptions? options]) async {
  Map map = {};
  map.putIfAbsent('connection', () => connection);
  map.putIfAbsent('extIdpConnidentifier', () => extIdpConnidentifier);

  if (connection == 'apple') {
    map.putIfAbsent('applePayload', () => {'code': code});
  } else if (connection == 'wechat') {
    map.putIfAbsent('wechatPayload', () => {'code': code});
  } else if (connection == 'wechatwork') {
    map.putIfAbsent('wechatworkPayload', () => {'code': code});
  } else if (connection == 'wechatwork_agency') {
    map.putIfAbsent('wechatworkAgencyPayload', () => {'code': code});
  } else if (connection == 'lark_internal') {
    map.putIfAbsent('larkInternalPayload', () => {'code': code});
  } else if (connection == 'lark_public') {
    map.putIfAbsent('larkPublicPayload', () => {'code': code});
  } else if (connection == 'google') {
    map.putIfAbsent('googlePayload', () => {'code': code});
  } else if (connection == 'alipay') {
    map.putIfAbsent('alipayPayload', () => {'code': code});
  }
  var jsonBody = jsonEncode(map);
  if (options != null) {
    jsonBody = jsonEncode(options.setValues(map));
  }
  final Result result = await post('/api/v3/signin-by-mobile', jsonBody);
  AuthResult authResult = AuthResult(result);
  authResult.user = await createUser(result);
  return authResult;
}