signIn method

Future<Result<SessionTokens>> signIn({
  1. Map<String, String> extraParams = const <String, String>{},
})

Interactive sign-in. extraParams carries deferred-login one-time-token / login-hint params when redeeming an app-handoff carrier.

Implementation

Future<Result<SessionTokens>> signIn({
  Map<String, String> extraParams = const <String, String>{},
}) async {
  _status = SessionStatus.authenticating;
  _problem = null;
  notifyListeners();
  try {
    final SessionTokens issued = await _provider.signIn(
      extraParams: extraParams,
    );
    _validateLifetime(issued);
    _tokens = issued;
    _status = SessionStatus.authenticated;
    notifyListeners();
    return Ok<SessionTokens>(issued);
  } on Object catch (error) {
    return _fail(
      type: 'urn:diene:problem:auth',
      title: 'Sign-in failed',
      detail: error.toString(),
    );
  }
}