HAM*_*MAM 17 php api laravel laravel-passport
当我使用auth:apiGuard 进行注销路由时,我遇到以下异常:
Auth Guard [:api] 未定义
我已经实现了注册/登录 API,但我在使用注销 API 时遇到了此错误,我已使用auth::api.
config/auth.php:
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'passport',
'provider' => 'users',
],
],
Run Code Online (Sandbox Code Playgroud)
routes/api.php:
Route::group(['prefix' => 'auth'], function () {
Route::post('login','AuthController@login');
Route::post('signup','AuthController@signup');
Route::group(['middleware' => 'auth::api'], function () {
Route::get('logout','AuthController@logout');
Route::get('user','AuthController@user');
});
});
Run Code Online (Sandbox Code Playgroud)
我应该能够注销用户。
pab*_*ros 10
如果您使用Laravel 9+and Passport,您需要在文件guard数组中实现它config/auth.php:
'guards' => [
...
// you need to implement this
'api' => [
'driver' => 'passport',
'provider' => 'users',
'hash' => true,
],
],
Run Code Online (Sandbox Code Playgroud)
你的代码中有一个额外的冒号,这就是它试图找到守卫的原因:api。
根据文档:
定义路由时可以通过使用 : 分隔中间件名称和参数来指定中间件参数。多个参数应以逗号分隔:
Route::put('post/{id}', function ($id) {
//
})->middleware('role:editor');
Run Code Online (Sandbox Code Playgroud)
所以在你的情况下它将是:
Route::group(['prefix' => 'auth'], function () {
Route::post('login','AuthController@login');
Route::post('signup','AuthController@signup');
Route::group(['middleware' => 'auth:api'], function () {
Route::get('logout','AuthController@logout');
Route::get('user','AuthController@user');
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31258 次 |
| 最近记录: |