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,
  );
}