假设我的服务器在12:00:05向5个客户端设备发送相同的请求.我想等待90秒(直到12:01:35),然后检查哪些客户端已对请求做出了适当的响应,并做了其他一些事情.完成这样的事情的最佳方法是什么?
我应该排队工作并sleep(90)在开始时使用吗?问题是这种类型的作业总是需要至少90秒才能完成,默认情况下服务器设置为60秒后超时.我想我可以更改服务器设置,但是如果超过60秒,我的其他工作仍然应该被认为已超时.
我应该排队计划的任务吗?这里的问题是我认为Laravel和cron只能给你调度精度到最近的分钟(12:01或12:02,但不是12:01:35).
我正在使用Laravel 5.3作为移动应用程序连接的REST服务器.我已经为大多数Laravel错误定制了异常处理程序,并且按照我喜欢的方式工作.
但是,OAuth错误很难恢复.例:
{
"error":"invalid_credentials",
"message":"The user credentials were incorrect."
}
Run Code Online (Sandbox Code Playgroud)
显然,我不是唯一一个被带有下划线的错误代码所困扰的人 - 我只有少数beta测试者,他们已经将此报告为"bug".
Passport似乎绕过了常规错误处理程序League\OAuth2\Server\Exception\OAuthServerException而是通过了.这些丑陋的错误消息被硬编码到该文件中.
public static function invalidCredentials()
{
return new static('The user credentials were incorrect.', 6, 'invalid_credentials', 401);
}
Run Code Online (Sandbox Code Playgroud)
我已经认真尝试了十几种扩展/覆盖OAuthServerException的方法,但我似乎无法使其工作.
我在Laravel 5.6中。我已经构建了所有API路由,并且可以正确响应来自REST客户端(Paw)的请求。我正在尝试构建一个简单的前端来访问这些路由。
我试图尽可能多地使用Laravel的现成功能,所以我正在使用Axios使用Vue.js从刀片模板调用这些路由。如果我在测试路由上禁用身份验证中间件,则可以使用它,但是当为路由启用身份验证中间件时,控制台上会出现401错误。
问题似乎已经足够明显了…… auth:api我的/api路线上的守卫希望在标题中看到一个oauth令牌,但是当我使用网页登录时,它会进行会话身份验证。我认为有一种简单的方法可以解决此问题,而不必在Web前端中欺骗oauth令牌请求,对吗?我是否需要以某种方式在Axios的请求中传递会话令牌?而且,如果是这样,我是否还需要auth:api在api路由文件中更改防护措施?
快速背景:我对PHP很有经验,但需要构建我的第一个RESTful API.我想我会尝试Laravel(5.2)并开始觉得很舒服.
我开始在周末为我的项目添加auth,我真的很难让它工作.我得到了基本的Laravel Auth中间件快速工作,但我认为我需要使用OAuth2进行生产(我将构建一个将连接到此服务器的移动应用程序).我正在使用Luca Degasperi OAuth2软件包,它看起来很受欢迎.
我查看了实际文档:https://github.com/lucadegasperi/oauth2-server-laravel/tree/master/docs#readme)
我还浏览了这个教程:https://medium.com/@mshanak/laravel-5-token-based-authentication-ae258c12cfea#.5lszb67xb
而且,最近,我发现这个线程有关在任何工作之前播种OAuth表的必要性:https://github.com/lucadegasperi/oauth2-server-laravel/issues/56
这一切都很棒,但最近Laravel的分布存在一些细微差别.例如,/ app/Http/Kernel.php与我发现的一些示例中显示的略有不同,因为它现在使用中间件组.我以为我正确处理了这些差异(我将OAuthExceptionHandlerMiddleware类添加到$ middlewareGroups的'web'部分而不是$ middleware).我让我的播种机工作了(目前的oauth_scopes表只允许你提供描述,所以我不得不减少上面第三个链接提供的内容).
如果我在routes.php的'web'组中放置测试路径,我会认为这需要OAuth,因为我将OAuth添加到Kernel.php中的'web'中间件组.事实并非如此.如果我这样做,我的路线无需验证.
然后我明确地将OAuth中间件添加到我的测试路由中,如下所示:
Route::get('tests/events', ['middleware' => 'oauth', function() {
$events = App\Event::get();
return response()->json($events);
}]);
Run Code Online (Sandbox Code Playgroud)
这导致500错误("OAuth2ServerServiceProvider.php第126行中的ErrorException:explode()期望参数2为字符串,对象给定").
我感到非常迷茫.这些软件包中的每一个似乎都变得如此之快,以至于没有关于如何启动和运行的完整文档.
我还需要做些什么来实现这个功能?