AuthServices constructor
- required TokenManagerBuilder<
TokenManager> primaryTokenManagerBuilder, - List<
IdentityProviderBuilder< identityProviderBuilders = const [],Object> > - List<
TokenManagerBuilder< additionalTokenManagerBuilders = const [],TokenManager> > - AuthUsers authUsers = const AuthUsers(),
- UserProfiles userProfiles = const UserProfiles(),
Creates a new AuthServices instance.
Use AuthServices.set to create a new instance and set it as the global instance.
primaryTokenManagerBuilder is the primary token manager builder that
will build the token manager used by identity providers for issuing new
tokens. The builder is used to build the token manager instance with the
necessary dependencies.
identityProviderBuilders is a list of IdentityProviderBuilder that
build the identity providers used by authentication endpoints. Each one
creates a provider instance with the appropriate token manager dependency.
additionalTokenManagerBuilders is a list of additional token manager
builders that are used to build additional token managers that handle
token lifecycle operations alongside the primaryTokenManagerBuilder.
These additional token managers are used to validate tokens in the same
order they are represented in the list.
authUsers is the default manager for managing auth users.
userProfiles is the default manager for managing user profiles.
Implementation
AuthServices({
required final TokenManagerBuilder primaryTokenManagerBuilder,
final List<IdentityProviderBuilder> identityProviderBuilders = const [],
final List<TokenManagerBuilder> additionalTokenManagerBuilders = const [],
this.authUsers = const AuthUsers(),
this.userProfiles = const UserProfiles(),
}) {
tokenManager = MultiTokenManager(
primaryTokenManager: primaryTokenManagerBuilder.build(
authUsers: authUsers,
),
additionalTokenManagers: additionalTokenManagerBuilders
.map((final factory) => factory.build(authUsers: authUsers))
.toList(),
);
for (final provider in identityProviderBuilders) {
_providers[provider.type] = provider.build(
tokenManager: tokenManager,
authUsers: authUsers,
userProfiles: userProfiles,
);
}
}