Trim files
This commit is contained in:
parent
864fcad631
commit
957a6c6c97
2 changed files with 23 additions and 27 deletions
18
lib/controllers/key_controller.dart
Normal file
18
lib/controllers/key_controller.dart
Normal 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,
|
||||||
|
);
|
||||||
|
}
|
|
@ -1,7 +1,7 @@
|
||||||
import "dart:io";
|
|
||||||
import "dart:convert";
|
import "dart:convert";
|
||||||
import "package:dart_jsonwebtoken/dart_jsonwebtoken.dart";
|
import "package:dart_jsonwebtoken/dart_jsonwebtoken.dart";
|
||||||
import "package:matrixoidc/controllers/auth_code_controller.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/controllers/settings_controller.dart";
|
||||||
import "package:matrixoidc/helpers/name_helper.dart";
|
import "package:matrixoidc/helpers/name_helper.dart";
|
||||||
import "package:shelf/shelf.dart";
|
import "package:shelf/shelf.dart";
|
||||||
|
@ -136,9 +136,7 @@ class ApiHelper {
|
||||||
);
|
);
|
||||||
|
|
||||||
final token = jwt.sign(
|
final token = jwt.sign(
|
||||||
SecretKey(
|
await ref.read(KeyController.provider.future),
|
||||||
(await File.fromUri(Uri.file(settings.jwtSecretFile)).readAsString()),
|
|
||||||
),
|
|
||||||
algorithm: JWTAlgorithm.HS256,
|
algorithm: JWTAlgorithm.HS256,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -162,11 +160,7 @@ class ApiHelper {
|
||||||
final token = auth.substring(7);
|
final token = auth.substring(7);
|
||||||
final jwt = JWT.verify(
|
final jwt = JWT.verify(
|
||||||
token,
|
token,
|
||||||
SecretKey(
|
await ref.read(KeyController.provider.future),
|
||||||
(await File.fromUri(
|
|
||||||
Uri.file(ref.read(SettingsController.provider)!.jwtSecretFile),
|
|
||||||
).readAsString()),
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
return Response.ok(
|
return Response.ok(
|
||||||
jsonEncode({"sub": jwt.subject}),
|
jsonEncode({"sub": jwt.subject}),
|
||||||
|
@ -184,29 +178,13 @@ class ApiHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
JWT.verify(
|
|
||||||
token,
|
|
||||||
SecretKey(
|
|
||||||
(await File.fromUri(
|
|
||||||
Uri.file(ref.read(SettingsController.provider)!.jwtSecretFile),
|
|
||||||
).readAsString()),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
final jwt = JWT.verify(
|
final jwt = JWT.verify(
|
||||||
token,
|
token,
|
||||||
SecretKey(
|
await ref.read(KeyController.provider.future),
|
||||||
(await File.fromUri(
|
|
||||||
Uri.file(ref.read(SettingsController.provider)!.jwtSecretFile),
|
|
||||||
).readAsString()),
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
|
|
||||||
return Response.ok(
|
return Response.ok(
|
||||||
json.encode({
|
json.encode({"active": true, "name": jwt.subject!.getName()}),
|
||||||
"active": true,
|
|
||||||
"name": jwt.subject!.getName(),
|
|
||||||
}),
|
|
||||||
headers: {"content-type": "application/json"},
|
headers: {"content-type": "application/json"},
|
||||||
);
|
);
|
||||||
} catch (_) {
|
} catch (_) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue