Trim files

This commit is contained in:
Henry Hiles 2025-07-25 19:51:10 -04:00
commit 957a6c6c97
No known key found for this signature in database
2 changed files with 23 additions and 27 deletions

View file

@ -0,0 +1,18 @@
import "dart:io";
import "package:dart_jsonwebtoken/dart_jsonwebtoken.dart";
import "package:matrixoidc/controllers/settings_controller.dart";
import "package:riverpod/riverpod.dart";
class KeyController extends AsyncNotifier<SecretKey> {
@override
Future<SecretKey> build() async => SecretKey(
(await File.fromUri(
Uri.file(ref.read(SettingsController.provider)!.jwtSecretFile),
).readAsString()).trim(),
);
static final provider = AsyncNotifierProvider<KeyController, SecretKey>(
KeyController.new,
);
}

View file

@ -1,7 +1,7 @@
import "dart:io";
import "dart:convert";
import "package:dart_jsonwebtoken/dart_jsonwebtoken.dart";
import "package:matrixoidc/controllers/auth_code_controller.dart";
import "package:matrixoidc/controllers/key_controller.dart";
import "package:matrixoidc/controllers/settings_controller.dart";
import "package:matrixoidc/helpers/name_helper.dart";
import "package:shelf/shelf.dart";
@ -136,9 +136,7 @@ class ApiHelper {
);
final token = jwt.sign(
SecretKey(
(await File.fromUri(Uri.file(settings.jwtSecretFile)).readAsString()),
),
await ref.read(KeyController.provider.future),
algorithm: JWTAlgorithm.HS256,
);
@ -162,11 +160,7 @@ class ApiHelper {
final token = auth.substring(7);
final jwt = JWT.verify(
token,
SecretKey(
(await File.fromUri(
Uri.file(ref.read(SettingsController.provider)!.jwtSecretFile),
).readAsString()),
),
await ref.read(KeyController.provider.future),
);
return Response.ok(
jsonEncode({"sub": jwt.subject}),
@ -184,29 +178,13 @@ class ApiHelper {
}
try {
JWT.verify(
token,
SecretKey(
(await File.fromUri(
Uri.file(ref.read(SettingsController.provider)!.jwtSecretFile),
).readAsString()),
),
);
final jwt = JWT.verify(
token,
SecretKey(
(await File.fromUri(
Uri.file(ref.read(SettingsController.provider)!.jwtSecretFile),
).readAsString()),
),
await ref.read(KeyController.provider.future),
);
return Response.ok(
json.encode({
"active": true,
"name": jwt.subject!.getName(),
}),
json.encode({"active": true, "name": jwt.subject!.getName()}),
headers: {"content-type": "application/json"},
);
} catch (_) {