我正在尝试为Laravel应用中的API服务提供多种身份验证方法。该应用程序是使用Vue.js的SPA,并使用API路由来呈现和呈现所有视图组件。目前,我正在使用JWT驱动程序作为应用程序内的API保护。但是,我还想为我的客户提供通过OAuth和Laravel的个人API令牌访问相同API的能力。话虽如此,我该如何使用Auth中间件保护我的资源,在该中间件中,可以使用JWT在内部对其进行访问,也可以通过具有OAuth或API令牌的客户端在外部对其进行访问。
控制器:
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
// Make sure user is authenticated
$this->middleware('auth:api');
//$this->middleware('auth:oauth');
}
Auth Guards:
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'jwt',
'provider' => 'users',
],
'oauth' => [
'driver' => 'token',
'provider' => 'users',
]
],
如果您希望能够为您的路由允许多个警卫,则可以为中间件调用提供不同的警卫(就像您已经使用api
警卫所做的那样:]
$this->middleware('auth:api,oauth');