TokenDriver.fromConfig constructor

TokenDriver.fromConfig(
  1. AuthConfig config,
  2. String providerKey, {
  3. AuthRepository? repository,
  4. TokenService? tokenService,
  5. TokenGenerator? tokenGenerator,
  6. TokenInvalidationStrategyFactory? strategyFactory,
})

Factory constructor with config and dependency injection

Implementation

factory TokenDriver.fromConfig(
  AuthConfig config,
  String providerKey, {
  AuthRepository? repository,
  TokenService? tokenService,
  TokenGenerator? tokenGenerator,
  TokenInvalidationStrategyFactory? strategyFactory,
}) {
  final provider = config.getProvider(providerKey);
  final driverConfig = config.getDriver('token');

  final accessSeconds =
      (provider['access_token_expiry'] ?? driverConfig['access_token_expiry'])
          as int?;
  final refreshSeconds =
      (provider['refresh_token_expiry'] ??
              driverConfig['refresh_token_expiry'])
          as int?;

  final tokenExpiry = accessSeconds != null
      ? Duration(seconds: accessSeconds)
      : null;
  final refreshTokenExpiry = refreshSeconds != null
      ? Duration(seconds: refreshSeconds)
      : null;

  final tokenServiceInstance = tokenService ?? DatabaseTokenService();

  return TokenDriver(
    repository: repository,
    tokenService: tokenServiceInstance,
    tokenGenerator: tokenGenerator,
    strategyFactory:
        strategyFactory ??
        TokenInvalidationStrategyFactory(tokenServiceInstance),
    providerKey: providerKey,
    tokenExpiry: tokenExpiry,
    refreshTokenExpiry: refreshTokenExpiry,
    config: config,
  );
}