laravel 5.3 auth всегда перенаправляет на страницу входа

Я хочу создать аутентификацию на laravel, но у меня проблема. когда я хочу получить доступ к другой странице, страница перенаправляется на страницу входа.

Вот мои маршруты

Route::auth();
Route::get('/news/getid/{id_category}', 'NewsController@getid');
Route::group(['middleware' => ['web', 'auth']], function () {
    Route::resource('news', 'NewsController', ['except' => ['getid']]);
    Route::resource('category', 'CategoryController');
});

и вот мой LoginController

protected $redirectTo = '/news';

public function username()
{
    return 'username';
}

/**
 * Create a new controller instance.
 *
 * @return void
 */
public function __construct()
{
    $this->middleware('guest', ['except' => 'logout']);
}

person rafitio    schedule 10.11.2016    source источник
comment
если вы попытаетесь получить доступ к маршрутам в группе промежуточного программного обеспечения auth, вы будете перенаправлены на страницу входа, если не вошли в систему.   -  person Sanzeeb Aryal    schedule 10.11.2016
comment
Пользователь аутентифицирован? если нет, как сказал @SanzeebAryal, это ожидаемое поведение. Или вы хотите, чтобы пользователь был перенаправлен на желаемую страницу после входа в систему?   -  person GiuServ    schedule 10.11.2016
comment
привет @SanzeebAryal. Я вошел в систему, но когда я хочу получить доступ к другой странице, страница снова перенаправляется на страницу входа. это как будто мою сессию не запомнили.   -  person rafitio    schedule 10.11.2016


Ответы (4)


Вы должны прокомментировать строку $ this-> middleware ('auth'); из конструктора вашего «NewsController». Должен быть

public function __construct()
{
// $this->middleware('auth');
}

Примечание. Комментируя эту строку, никогда не проверяйте аутентификацию для всех страниц просмотра, возвращаемых этим контроллером.

person Md. Abu Taleb    schedule 10.11.2016
comment
привет :) но на моем контроллере нет этой функции. - person rafitio; 11.11.2016
comment
Итак, как работает ваша аутентификация? Вы работали с файлом маршрута для аутентификации? - person Md. Abu Taleb; 11.11.2016
comment
да, я работаю над файлом маршрута, используя этот Route::group(['middleware' => ['web', 'auth']], function () {. Я пытался использовать $this->middleware('auth'); на своем контроллере, как вы упомянули, но он все тот же - person rafitio; 11.11.2016
comment
Вы пробовали использовать аутентификацию по умолчанию в laravel? если да, дайте мне скриншот / код вашего файла маршрута. - person Md. Abu Taleb; 11.11.2016

Route::auth(); должен быть в web группе промежуточного программного обеспечения, поскольку маршруты аутентификации используют сеанс для запоминания вошедшего в систему пользователя.

person Paul    schedule 10.11.2016
comment
я пытался поместить Route::auth() в группу промежуточного программного обеспечения для веб, но я получаю эту ошибку в своем браузере Chrome ERR_TOO_MANY_REDIRECTS - person rafitio; 10.11.2016

Вам нужно удалить эту строку на каждой странице, которую вы не хотите защищать аутентификацией:

$this->middleware('auth');

так что просто удалите его с контроллера "другой страницы", о котором вы упомянули выше.

person user2682025    schedule 10.11.2016
comment
привет :) но на моем контроллере нет $this->middleware('auth');. - person rafitio; 11.11.2016

В вашем файле маршрута (возможно, web.php). Удалите промежуточное ПО auth из группы Вот так:

Route::group(['middleware' => ['web' , 'auth']], function () {
Route::resource('news', 'NewsController', ['except' => ['getid']]);
Route::resource('category', 'CategoryController');
});

стать таким:

Route::group('middleware' => 'web', function () {
Route::resource('news', 'NewsController', ['except' => ['getid']]);
Route::resource('category', 'CategoryController');
});

Но убедитесь, что вам действительно не нужно защищать этот маршрут.

person Olabode Abesin    schedule 18.03.2018