首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Dart渡槽服务器中获取请求标头

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

Stack Overflow用户
提问于 2019-04-10 07:41:47
回答 1查看 382关注 0票数 2

我想从请求的Authorization头中获取一个令牌。

代码语言:javascript
复制
import 'dart:async';
import 'package:aqueduct/aqueduct.dart';


class SecretController extends ResourceController {

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

    request.headers // ??? not available

  }
}

如何在Aqueduct中访问标头

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-10 21:54:07

请求是Dart标准库中原始HttpRequest对象的包装器,因此一种方法是像这样访问它:

代码语言:javascript
复制
request.raw.headers["authorization"]

还可以将头的值绑定到方法参数;当您想要将字符串头的值解析为另一种类型和/或验证头时,这是很好的。(You can do some really convenient stuff with binding.)

代码语言:javascript
复制
@Operation.get()
Future<Response> signIn(
  @Bind.header("authorization") String authorization) async {
  ...
}

最后,具体到Authorization头,您可以使用Authorizer中间件。这将验证authorization头并创建一个Authorization对象,其中包含可从您的方法访问的授权资源所有者('the user')的详细信息。

代码语言:javascript
复制
router.route("/secret")
  .link(() => Authorizer.bearer(authServer))
  .link(() => SecretController());

...

@Operation.get()
Future<Response> signIn() async {
  final userIDForRequest = request.authorization.ownerID;
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55602760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档