【问题标题】:How to figure out the Token Name in the controller?如何找出控制器中的令牌名称?
【发布时间】:2017-09-05 08:33:18
【问题描述】:

我创建了一个 Laravel 5.4 应用程序,它是一个基于 REST 的 API,用于向客户提供有关我们库存的数据。

我已经实现了基于 Passport 的身份验证,我的客户创建了一个“个人访问令牌”并在他们的客户请求中使用它。所有这些都运行良好。

我现在需要测量 API 的使用情况,以确定发出请求的用户和令牌(按名称)。

我可以使用$request->session(); 获取用户,但是如何获取发出请求的令牌的名称?

【问题讨论】:

  • 获取令牌名称是什么意思? '
  • 当用户创建个人访问令牌时,他或她输入一个名称,该名称存储在oauth_access_tokens 表中。我想记录这个名称以及请求,以便计量这些 API 调用,并在月底向用户发送账单

标签: laravel token laravel-5.4 laravel-passport


【解决方案1】:

Laravel 护照在 2 个位置搜索有效令牌:

归结后,您可以使用此方法找到您要寻找的令牌:

$token = $request->bearerToken() ?? $request->cookie(Passport::cookie());

【讨论】:

  • 客户端在其请求的授权标头中将其访问令牌指定为不记名令牌。如果我在您的回答中使用代码,我会收到一条错误消息,提示“方法承载不存在”,并且客户端不会随请求一起发送任何 cookie。
  • 你能仔细检查一下 $request 的类是 \Illuminate\Http\Request 吗?
  • 编辑:我的错误:使用 ->bearerToken() 而不是 ->bearer()
猜你喜欢
  • 1970-01-01
  • 2010-12-31
  • 1970-01-01
  • 1970-01-01
  • 2018-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多