#laravel
#laravel
Вопрос:
Я пытаюсь создать промежуточное ПО аутентификации для администратора, но я пытаюсь получить свойство ‘is_admin’ не-объекта
namespace AppHttpMiddleware;
use IlluminateSupportFacadesAuth;
use Closure;
class Admin
{
public function handle($request, Closure $next)
{
if(auth()->user()->is_admin == 1){
return $next($request);
}
return redirect()->route('login');
}
и когда я напечатал dd (auth ()-> user ())
он вернул значение null
Ответ №1:
auth()->user()
возвращает null
Почему?
Потому что пользователь не вошел в систему.
Итак, вы можете изменить свое условие из:
if(auth()->user()->is_admin == 1)
Для:
if(auth()->check() amp;amp; auth()->user()->is_admin == 1)
Комментарии:
1. Я попробовал ваш код, вы правы, он не аутентифицирован, но я не знаю почему? Я отправил токен в заголовке после входа в систему, но он все еще не прошел проверку подлинности
2. Route::group([‘промежуточное программное обеспечение’ => ‘admin’], функция(){ Route::post(‘/products’,’ProductController@store’); }); это моя группа промежуточного программного обеспечения @Imran
3. Что у вас есть в вашем промежуточном программном обеспечении? Разве вы не применяете
auth
промежуточное программное обеспечение?