Files
workavia-mail-front/lib/features/login/data/datasource/authentication_oidc_datasource.dart
T

44 lines
1.2 KiB
Dart

import 'package:model/model.dart';
abstract class AuthenticationOIDCDataSource {
Future<OIDCResponse> checkOIDCIsAvailable(OIDCRequest oidcRequest);
Future<OIDCConfiguration> getOIDCConfiguration(OIDCResponse oidcResponse);
Future<OIDCDiscoveryResponse> discoverOIDC(OIDCConfiguration oidcConfiguration);
Future<TokenOIDC> getTokenOIDC(
String clientId,
String redirectUrl,
String discoveryUrl,
List<String> scopes, {
String? loginHint,
});
Future<void> persistTokenOIDC(TokenOIDC tokenOidc);
Future<void> deleteTokenOIDC();
Future<TokenOIDC> getStoredTokenOIDC(String tokenIdHash);
Future<void> persistOidcConfiguration(OIDCConfiguration oidcConfiguration);
Future<void> deleteOidcConfiguration();
Future<OIDCConfiguration> getStoredOidcConfiguration();
Future<bool> logout(TokenId tokenId, OIDCConfiguration config, OIDCDiscoveryResponse oidcRescovery);
Future<void> authenticateOidcOnBrowser(
String clientId,
String redirectUrl,
String discoveryUrl,
List<String> scopes);
Future<String> getAuthenticationInfo();
Future<void> removeAuthDestinationUrl();
Future<OidcUserInfo> fetchUserInfo(String userInfoEndpoint);
}