json - 如何在 Laravel AuthServiceProvider 中返回 JSON?
问题描述
我正在检查boot()
方法中的令牌并捕获无效令牌。在令牌无效的情况下如何返回一些响应?
这是我的代码:
public function boot(Authenticator $authenticator)
{
Auth::viaRequest('auth-token', function ($request) use ($authenticator) {
$bearerToken = $request->bearerToken();
if ($bearerToken) {
try {
return $authenticator->getUser($bearerToken);
} catch (InvalidTokenException $exeception) {
return response()->json(['token_invalid'], 400);
}
}
});
}
它给我带来了错误:
方法 Illuminate\Http\JsonResponse::getAuthIdentifier 不存在。
解决方案
从文档:
传递给该方法的第二个参数应该是一个闭包,它接收传入的 HTTP 请求并返回一个用户实例,或者,如果身份验证失败,则返回null
因此,不要返回响应对象,而是返回 null:
if ($bearerToken) {
try {
return $authenticator->getUser($bearerToken);
} catch (InvalidTokenException $exeception) {
return null;
}
}
推荐阅读
- spring - Spring Rest Controller - 我可以允许拦截器中的 CORS 吗?
- javascript - 使用 jquery 在元素中滚动动画,同时元素大小随 css 动画而变化
- time-series - 大量数据的时间序列图
- android - 抽屉布局 setBackgroundColor 不起作用
- docker - Kibana 容器到 elasticsearch 云身份验证错误
- python - settings.py 中的 Static_Root 重定向到我在应用程序中的静态文件夹,而不是基本根目录
- python - Python是否有一个包来解决使用递归关系定义的序列?
- jenkins - Jenkins 'agent: none' 轻量级执行器等效于脚本化管道
- github - GitHub Api:给定语言的所有存储库列表
- php - 选择总是选择最后一个值