mqttid后缀自动追加时间戳防止冲突 web服务器handler调用加入jwt解码后的参数 服务发现新增从本地获取全部ip进行地址匹配

This commit is contained in:
qmqz
2025-01-09 17:03:27 +08:00
parent 0935d5e017
commit 0447c27274
4 changed files with 33 additions and 5 deletions

View File

@@ -4,6 +4,7 @@ import 'dart:mirrors';
import 'package:EasyDartModule/EasyDartModule.dart';
import 'package:EasyDartModule/base/logger/Logger.dart';
import 'package:EasyDartModule/base/webserver/WebServer.dart';
import 'package:dart_jsonwebtoken/dart_jsonwebtoken.dart';
import 'package:shelf/shelf.dart';
import 'package:shelf/shelf_io.dart';
import 'package:shelf_router/shelf_router.dart';
@@ -187,7 +188,19 @@ class ShelfWebServer implements WebServer {
//把地址加入路由
addRouter(m.reflectee.method, p, (req, [a, b, c, d, e, f]) {
return im.invoke(v.simpleName, [req]).reflectee;
//从request中获取token并解码传入
String? token = req.headers["token"];
dynamic payload;
if (token != null) {
try {
payload = JWT.decode(token).payload;
} catch (e) {
//jwt解码失败
print(e);
}
}
return im.invoke(v.simpleName,
[req, payload ?? <String, dynamic>{}]).reflectee;
});
}
}