Files
workavia-mail-front/model/lib/oidc/oidc_configuration.dart
T
2025-10-17 09:57:11 +07:00

55 lines
1.2 KiB
Dart

import 'package:equatable/equatable.dart';
class OIDCConfiguration with EquatableMixin {
static const String _wellKnownOpenId = '.well-known/openid-configuration';
final String authority;
final String clientId;
final List<String> scopes;
final bool isTWP;
final String? loginHint;
OIDCConfiguration({
required this.authority,
required this.clientId,
required this.scopes,
this.isTWP = false,
this.loginHint,
});
String get discoveryUrl {
if (authority.endsWith('/')) {
return authority + _wellKnownOpenId;
} else {
return '$authority/$_wellKnownOpenId';
}
}
@override
List<Object?> get props => [
authority,
clientId,
scopes,
isTWP,
loginHint,
];
}
extension OIDCConfigurationExtension on OIDCConfiguration {
OIDCConfiguration copyWidth({
String? authority,
String? clientId,
List<String>? scopes,
bool? isTWP,
String? loginHint,
}) =>
OIDCConfiguration(
authority: authority ?? this.authority,
clientId: clientId ?? this.clientId,
scopes: scopes ?? this.scopes,
isTWP: isTWP ?? this.isTWP,
loginHint: loginHint ?? this.loginHint,
);
}