如何在Dart渡槽服务器中获取请求头

如何在Dart渡槽服务器中获取请求头,dart,http-headers,httprequest,aqueduct,Dart,Http Headers,Httprequest,Aqueduct,我想从请求的授权头中获取令牌 import 'dart:async'; import 'package:aqueduct/aqueduct.dart'; class SecretController extends ResourceController { @Operation.get() Future<Response> signin() async { request.headers // ??? not available } } 导入'dart

我想从请求的
授权
头中获取令牌

import 'dart:async';
import 'package:aqueduct/aqueduct.dart';


class SecretController extends ResourceController {

  @Operation.get()
  Future<Response> signin() async {

    request.headers // ??? not available

  }
}
导入'dart:async';
进口“包装:导水管/导水管.dart”;
类SecretController扩展了ResourceController{
@get()操作
Future sign()异步{
request.headers/???不可用
}
}

如何在中访问该标头?

请求是Dart标准库中原始HttpRequest对象的包装,因此一种方法是按如下方式访问它:

request.raw.headers["authorization"]
还可以将头的值绑定到方法参数;当您想要将字符串头值解析为另一种类型和/或验证头时,这很好。()

@Operation.get()
未来签约(
@Bind.header(“授权”)字符串授权)异步{
...
}
最后,针对授权头,您可以使用Authorizer中间件。这将验证授权标头并创建一个授权对象,其中包含可从方法访问的授权资源所有者(“用户”)的详细信息

router.route("/secret")
  .link(() => Authorizer.bearer(authServer))
  .link(() => SecretController());

...

@Operation.get()
Future<Response> signIn() async {
  final userIDForRequest = request.authorization.ownerID;
}
router.route(“/secret”)
.link(()=>授权人承载人(authServer))
.link(()=>SecretController());
...
@get()操作
Future sign()异步{
最终用户IDForRequest=request.authorization.ownerID;
}
router.route("/secret")
  .link(() => Authorizer.bearer(authServer))
  .link(() => SecretController());

...

@Operation.get()
Future<Response> signIn() async {
  final userIDForRequest = request.authorization.ownerID;
}