Laravel продолжает выходить из меня после входа - PullRequest
1 голос
/ 08 июня 2019

У меня есть Laravel. Я использую несколько доменов. До вчерашнего дня у меня был один домен верхнего уровня и несколько поддоменов. Я добавил еще один TLD вчера, и все стало работать странно. В частности, при попытке войти в раздел администратора он перенаправляет на домашнюю страницу. У меня есть один админ, но серверные домены приходят на сайт. Мой маршрут группы это:

Route::group(['prefix' => 'admin', 'middleware' => 'auth'], function() {

Иногда это фактически приводит меня к администратору, но как только я нажимаю на ссылку, я выхожу из системы и перенаправляем на домашнюю страницу. Я также вижу ошибки 401 в консоли.

Что бы это вызвало?

редактировать

Route::group(['prefix' => 'admin', 'middleware' => 'auth'], function() {
        Route::get('/', 'AdminController@index');
        Route::get('/pages', 'AdminController@pages');
        Route::get('page/create', 'AdminController@createPagePage');
        Route::post('createPage', 'AdminController@createPage');
        Route::get('/page/edit/{page_id}', 'AdminController@editPagePage');
        Route::post('editPage', 'AdminController@editPage');
});

$redirectTo = '/';

Ответы [ 3 ]

2 голосов
/ 12 июня 2019

Если вы уверены в правильности настройки домена.Пожалуйста, проверьте эти несколько вещей.

1. Ваш config/session.php правильно настроен для поддержки нескольких доменов.

'driver' => env('SESSION_DRIVER', 'file'),  // check /storage folder writtable recursivelly.

'domain' => env('SESSION_DOMAIN', null),  // verify if single domain is not given in .env or in settings.

'same_site' => null // it should not be strict if you have ajax request across these domain. I mean from javascript you may try to request to other domain.

etc...

2. Подтвердите, если ваши маршруты не относятся к группе под domain.что-то вроде:

Route::group(['domain' => 'xxx'], function($params)
{
    // your routes..
});

3. Если в коде добавлены какие-либо жестко закодированные проверки / условия домена или перенаправление.

4. Любыезначения в .env указывают на один домен.

5. Также не забудьте очистить кэш / скомпилированный вид / маршруты и удалить временные файлы один раз.как сгенерированные файлы внутри /app/bootstrap & /storage

// Clear Application Cache
php artisan cache:clear

// Clear route cache
php artisan route:cache

// Clear config cache
php artisan config:cache  


// Clear compiled view files
php artisan view:clear

6. Любой пакет третьей стороны может содержать настройки домена.Обязательно проверьте файлы в папке /config.

7. Проверьте настройки url rewrite в .htaccess

8. Подтвердите, есть ли какие-либо настройки прокси-сервера или какое-либо программное обеспечение, установленное на сервере - очень редкий случай.

В случае, если проблема по-прежнему возникает, перезапустите службу apache/nginx один раз, потому что иногда изменения конфигурации не вступают в силу послеизменение, которое может потребовать перезагрузки сервера.

Надеюсь, это поможет.

0 голосов
/ 12 июня 2019

Если вы используете Linux, попробуйте проверить права доступа к файлу сеанса и изменить их, чтобы приложение могло записывать ключи сеанса в этот файл, а если оно не работает, попробуйте изменить драйвер сеанса на база данных .

как изменить драйвер сеанса?

  1. Перейдите в файл .env и измените файл SESSION_DRIVER = на SESSION_DRIVER = база данных.
  2. создать миграцию сеанса: php ремесленник сеанс: таблица.
  3. composer dump-autoload.
  4. Наконец мигрируйте (php artisan migrate).
0 голосов
/ 08 июня 2019

Вы правильно установили SESSION_DOMAIN?

Одна вещь, которую вы можете заметить, это то, что сессия не сохраняется, когда пользователь вошел в один магазин и перешел в другой. Чтобы решить эту проблему, нам нужно добавить переменную SESSION_DOMAIN в наш файл .env, например:

SESSION_DOMAIN =». Example.com»

Вот и все, теперь пользовательский сеанс будет общим для всех магазинов / поддоменов в нашем приложении.

https://medium.com/@maxkostinevich/how-to-build-multi-domain-laravel-application-e6d87d5e507b

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...