authenticate method Null safety

  1. @override
Future<AuthToken> authenticate(
  1. AuthPayload payload
)
override

Authenticate with Facebook

Implementation

@override
Future<AuthToken> authenticate(AuthPayload payload) async {
  final LoginResult result = await _fbAuth.login(
    permissions: ['public_profile', 'email'],
  );
  // When successful
  if (result.status == LoginStatus.success) {
    // you are logged
    final AccessToken accessToken = result.accessToken!;
    final userData = await _fbAuth.getUserData(
      fields: 'email',
    );
    final socialPayload = AuthSocialPayload(
      email: userData['email'],
      externalId: accessToken.userId,
      token: accessToken.token,
      service: AuthAdapter.facebook,
    );
    return post(socialPayload);
  }
  // When failed
  else {
    final message = result.message ?? 'The login request was cancelled';
    return AuthToken.failed(message);
  }
}