小编jre*_*kes的帖子

我如何延迟Laravel 5.2的工作时间?

假设我的服务器在12:00:05向5个客户端设备发送相同的请求.我想等待90秒(直到12:01:35),然后检查哪些客户端已对请求做出了适当的响应,并做了其他一些事情.完成这样的事情的最佳方法是什么?

我应该排队工作并sleep(90)在开始时使用吗?问题是这种类型的作业总是需要至少90秒才能完成,默认情况下服务器设置为60秒后超时.我想我可以更改服务器设置,但是如果超过60秒,我的其他工作仍然应该被认为已超时.

我应该排队计划的任务吗?这里的问题是我认为Laravel和cron只能给你调度精度到最近的分钟(12:01或12:02,但不是12:01:35).

php queue cron laravel-5

6
推荐指数
1
解决办法
6554
查看次数

如何在Laravel 5.3中修改Passport OAuth的错误消息?

我正在使用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的方法,但我似乎无法使其工作.

oauth laravel laravel-5.3 laravel-passport

5
推荐指数
1
解决办法
674
查看次数

如何在Laravel中验证API路由的Vue.js / Axios请求

我在Laravel 5.6中。我已经构建了所有API路由,并且可以正确响应来自REST客户端(Paw)的请求。我正在尝试构建一个简单的前端来访问这些路由。

我试图尽可能多地使用Laravel的现成功能,所以我正在使用Axios使用Vue.js从刀片模板调用这些路由。如果我在测试路由上禁用身份验证中间件,则可以使用它,但是当为路由启用身份验证中间件时,控制台上会出现401错误。

问题似乎已经足够明显了…… auth:api我的/api路线上的守卫希望在标题中看到一个oauth令牌,但是当我使用网页登录时,它会进行会话身份验证。我认为有一种简单的方法可以解决此问题,而不必在Web前端中欺骗oauth令牌请求,对吗?我是否需要以某种方式在Axios的请求中传递会话令牌?而且,如果是这样,我是否还需要auth:api在api路由文件中更改防护措施?

authentication laravel vue.js axios

3
推荐指数
2
解决办法
6388
查看次数

寻找Laravel 5.2 OAuth2实施的从头到尾的操作方法

快速背景:我对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为字符串,对象给定").

我感到非常迷茫.这些软件包中的每一个似乎都变得如此之快,以至于没有关于如何启动和运行的完整文档.

我还需要做些什么来实现这个功能?

authentication rest oauth oauth-2.0 laravel-5

1
推荐指数
1
解决办法
4376
查看次数