您可以为此使用middleware(文档中的示例将使您更好地理解)。在 app/http/middleware 中编写一个调用您的 Web 服务的中间件,如下所示,
您可以使用 artisan 命令定义中间件; php artisan make:middleware Webservice
<?php
namespace App\Http\Middleware;
use Closure;
class WebserviceMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
// get return value of the web service
$return_value = webservice.call();
if (!$return_value)
{
//if return value is false define the redirect to login route
return redirect('/');
}
//else let the request to be proceeded.
return $next($request);
}
}
并通过将中间件包含在 $routemiMiddleware 属性中来注册中间件,如下所示;
protected $routeMiddleware = [
//other exisiting middleware
'webservice' => \App\Http\Middleware\WebserviceMiddleware::class,
];
现在将通过 laravel 默认身份验证的 auth 路由放入 web.php 中的中间件中,如下所示,
Route::group(['middleware' => 'webservice'], function () {
Auth::routes();
});
或通过,
Auth::routes()->middleware('webservice');
现在在继续之前评估 web 服务返回值。