Почему Laravel Auth не работает, если мы используем концепцию базы данных Dynami c, которая принимает конфигурацию времени выполнения формы DBName? - PullRequest
0 голосов
/ 20 июня 2020

Я много раз искал и пытался найти правильный ответ, но не получал. Концепция - мультиарендность Laravel App. но разница в том, что имя базы данных - Dynami c, и она получает данные от пользователя.

Когда мы устанавливаем форму конфигурации БД \Config::set('database.connections.client_db', array(...));, затем пытаемся войти в систему \Auth::login($user);, тогда она работает для того же контроллера, но когда мы выходим за пределы этого контроллера, его Auth::check не работает. для этого я использовал ПО промежуточного слоя для повторного входа в систему каждый раз, когда срабатывает API. эта концепция работает. но есть проблема, что его сеанс никогда не истекает. когда я нажимаю через 3 дня тот же URL или API, чем он снова возвращает данные. но он должен выйти ...

Помощник. php

 function DynamicDBCall($dbName)
  {

    \DB::disconnect('mysql');
    \DB::disconnect('client_db');

    \DB::setDefaultConnection('client_db');
    \Config::set('database.connections.client_db', array(......);
    \Config::set('database.connections.client_db.database', $dbConfig['dbName']);
    \DB::purge('client_db');
    \DB::reconnect('client_db');
   }

LoginController. php

  function login(Request $req)
   {
     dynamicDatabaseConfig( dnc($dToken));
     $user=  User::first();
     \Auth::login($user);
   }

Основной код такой. dynamicDatabaseConfig( dnc($dToken)) вызывается в DynamicAuthMiddleware ..

подскажите пожалуйста как правильно ..

...