我想从请求的Authorization头中获取一个令牌。
import 'dart:async';
import 'package:aqueduct/aqueduct.dart';
class SecretController extends ResourceController {
@Operation.get()
Future<Response> signin() async {
request.headers // ??? not available
}
}如何在Aqueduct中访问标头
发布于 2019-04-10 21:54:07
请求是Dart标准库中原始HttpRequest对象的包装器,因此一种方法是像这样访问它:
request.raw.headers["authorization"]还可以将头的值绑定到方法参数;当您想要将字符串头的值解析为另一种类型和/或验证头时,这是很好的。(You can do some really convenient stuff with binding.)
@Operation.get()
Future<Response> signIn(
@Bind.header("authorization") String authorization) async {
...
}最后,具体到Authorization头,您可以使用Authorizer中间件。这将验证authorization头并创建一个Authorization对象,其中包含可从您的方法访问的授权资源所有者('the user')的详细信息。
router.route("/secret")
.link(() => Authorizer.bearer(authServer))
.link(() => SecretController());
...
@Operation.get()
Future<Response> signIn() async {
final userIDForRequest = request.authorization.ownerID;
}https://stackoverflow.com/questions/55602760
复制相似问题