token校验函数改为异步
This commit is contained in:
@@ -13,7 +13,7 @@ abstract class WebServer {
|
|||||||
|
|
||||||
void start(int port,
|
void start(int port,
|
||||||
{Response? Function(Request, Map<String, dynamic>)? interceptor,
|
{Response? Function(Request, Map<String, dynamic>)? interceptor,
|
||||||
TokenResult Function(String?)? tokenCheck});
|
Future<TokenResult> Function(String?)? tokenCheck});
|
||||||
void stop();
|
void stop();
|
||||||
void addHandler(handler);
|
void addHandler(handler);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ class ShelfWebServer implements WebServer {
|
|||||||
final Router _router = Router();
|
final Router _router = Router();
|
||||||
final Uuid uuid = Uuid();
|
final Uuid uuid = Uuid();
|
||||||
final Map<String, WebSocketHandler> _wsCall = {};
|
final Map<String, WebSocketHandler> _wsCall = {};
|
||||||
TokenResult Function(String?)? tokenCheck;
|
Future<TokenResult> Function(String?)? tokenCheck;
|
||||||
Response? Function(Request, Map<String, dynamic>)? interceptor;
|
Response? Function(Request, Map<String, dynamic>)? interceptor;
|
||||||
|
|
||||||
ShelfWebServer(this.logger);
|
ShelfWebServer(this.logger);
|
||||||
@@ -159,7 +159,7 @@ class ShelfWebServer implements WebServer {
|
|||||||
@override
|
@override
|
||||||
void start(int port,
|
void start(int port,
|
||||||
{Response? Function(Request, Map<String, dynamic>)? interceptor,
|
{Response? Function(Request, Map<String, dynamic>)? interceptor,
|
||||||
TokenResult Function(String?)? tokenCheck}) async {
|
Future<TokenResult> Function(String?)? tokenCheck}) async {
|
||||||
var pipeline = Pipeline()
|
var pipeline = Pipeline()
|
||||||
//生成请求id
|
//生成请求id
|
||||||
.addMiddleware(requestIdMiddleware())
|
.addMiddleware(requestIdMiddleware())
|
||||||
@@ -226,7 +226,7 @@ class ShelfWebServer implements WebServer {
|
|||||||
bool check = true;
|
bool check = true;
|
||||||
if (tokenCheck != null) {
|
if (tokenCheck != null) {
|
||||||
//自定义token校验函数存在
|
//自定义token校验函数存在
|
||||||
var checkResult = tokenCheck!(token);
|
var checkResult = await tokenCheck!(token);
|
||||||
if (!checkResult.status) {
|
if (!checkResult.status) {
|
||||||
//校验失败
|
//校验失败
|
||||||
response = Response.ok(checkResult.errMsg);
|
response = Response.ok(checkResult.errMsg);
|
||||||
|
|||||||
Reference in New Issue
Block a user