feat: support for JWT authentication

Signed-off-by: Krille <c.kussowski@famedly.com>
This commit is contained in:
Ray Wang 2024-05-09 00:47:44 +10:00 committed by Krille
parent ecb1fc973e
commit e9825f7f40
No known key found for this signature in database
GPG Key ID: E067ECD60F1A0652
2 changed files with 10 additions and 1 deletions

View File

@ -1398,7 +1398,9 @@ enum LoginType {
@EnhancedEnumValue(name: 'm.login.password')
mLoginPassword,
@EnhancedEnumValue(name: 'm.login.token')
mLoginToken
mLoginToken,
@EnhancedEnumValue(name: 'org.matrix.login.jwt')
mLoginJWT
}
///

View File

@ -308,6 +308,7 @@ extension LoginTypeFromStringExtension on Iterable<LoginType> {
final override = {
'm.login.password': LoginType.mLoginPassword,
'm.login.token': LoginType.mLoginToken,
'org.matrix.login.jwt': LoginType.mLoginJWT,
}[val];
// ignore: unnecessary_this
return this.contains(override) ? override : null;
@ -320,25 +321,31 @@ extension LoginTypeEnhancedEnum on LoginType {
String get name => {
LoginType.mLoginPassword: 'm.login.password',
LoginType.mLoginToken: 'm.login.token',
LoginType.mLoginJWT: 'org.matrix.login.jwt',
}[this]!;
bool get isMLoginPassword => this == LoginType.mLoginPassword;
bool get isMLoginToken => this == LoginType.mLoginToken;
bool get isMLoginJWT => this == LoginType.mLoginJWT;
T when<T>({
required T Function() mLoginPassword,
required T Function() mLoginToken,
required T Function() mLoginJWT,
}) =>
{
LoginType.mLoginPassword: mLoginPassword,
LoginType.mLoginToken: mLoginToken,
LoginType.mLoginJWT: mLoginJWT,
}[this]!();
T maybeWhen<T>({
T? Function()? mLoginPassword,
T? Function()? mLoginToken,
T? Function()? mLoginJWT,
required T Function() orElse,
}) =>
{
LoginType.mLoginPassword: mLoginPassword,
LoginType.mLoginToken: mLoginToken,
LoginType.mLoginJWT: mLoginJWT,
}[this]
?.call() ??
orElse();