我从env文件和database.php文件中删除了数据库连接信息。并且我根据来自客户端的每个请求动态地设置数据库。我在主中间件中完成此操作。
$origin = $request->header('Origin');
\Config::set(['database.default' => 'mysql']);
\Config::set(['database.connections.mysql.host' => '127.0.0.1']);
\Config::set(['database.connections.mysql.database' => $origin]);
\Config::set(['database.connections.mysql.username' => 'root']);
\Config::set(['database.connections.mysql.port' => '3306']);我在登录时没有问题,令牌已创建。但在其他操作中,我得到了一个401错误。事实上,passport从env文件或database.php调用数据库的连接信息。但是我们希望通过中间件来实现,或者我们可以在检查auth: api之前为它设置数据库信息。
发布于 2021-01-28 14:16:48
默认情况下,Passport access default DB。如果您想要使用动态数据库,请在您的应用程序/Providers/AppServiceProvider.php的引导方法中添加以下代码:
public function boot()
{
Config::set('database.connections.pgsql.database', 'newdatabase');
DB::purge('pgsql');
DB::reconnect('pgsql');
}https://stackoverflow.com/questions/61645875
复制相似问题