createSession method

Future<AuthUserSession> createSession(
  1. String userId, {
  2. String? mid,
  3. String? businessId,
  4. String? pin,
})

Creates a new session via the service and stores it in memory. pin Optional PIN for session creation when PIN verification is required.

Implementation

Future<AuthUserSession> createSession(
  String userId, {
  String? mid,
  String? businessId,
  String? pin,
}) {
  return monitoringService.monitorAction<AuthUserSession>(
    actionName: 'create_session',
    provider: _providerName,
    attributes: {'userId': userId},
    action: (trace) async {
      _ensureInitialized();
      var request = CreateSessionRequest(
        userId: userId,
        mid: mid,
        businessId: businessId,
        pin: pin,
      );
      var responseSession = await sessionService.createSession(request);
      var session = AuthUserSession.mapFromDto(dto: responseSession);

      await validateSession(session);
      await _localSessionRepository.saveSession(session);
      await _localSessionRepository.setActiveSession(session);
      return session;
    },
  );
}