我在申请时遇到了一个问题。假设有两个中间件1)用户2)管理员可以在我的控制器中获得我认证的中间件吗?我使用的是Laravel 5.4。这是我的路线声明
Route::group(['prefix' => 'user'], function () {
Route::group(['middleware' => ['auth:api']], function () {
Route::post('shop/store', 'ApiShopController@shopStore');
Route::post('shop/update', 'ApiShopController@shopUpdate');
});
});
Route::group(['prefix' => 'admin'], function () {
Route::group(['middleware' => ['auth:admin-api']], function () {
Route::post('shop/store', 'ApiShopController@shopStore');
Route::post('shop/update', 'ApiShopController@shopUpdate');
});
});
这是我的中间件声明
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
'admin' => [
'driver' => 'session',
'provider' => 'admins',
],
'admin-api' => [
'driver' => 'token',
'provider' => 'admins',
],
]
发布于 2018-07-07 19:32:01
您应该使用Auth::guard('role')
发布于 2018-07-07 19:31:26
您可以将其包含在您的Controller构造函数中,以便直接在中间件中进行分配,例如:
class HomeController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function index()
{
return view('home');
}
}
你也可以在你的控制器中运行这个方法,但是我还没有检查它:
$middleware = $this->getMiddleware();
这应该会返回控制器中的中间件
发布于 2018-07-08 04:53:58
该配置具有当前的默认保护。如果您使用的是auth
中间件,则身份验证将设置为当前默认值:
config('auth.defaults.guard');
Auth::getDefaultDriver();
https://stackoverflow.com/questions/51222739
复制相似问题