拉拉维尔护照显示401未经认证的错误search_path(字符串)
我正在使用Laravel护照进行API身份验证,当我将其与一个数据库一起使用时,它可以完美地工作,但在使用多个数据库时会给出,401
我在做什么:
- 我有一个多租户数据库,主数据库有用户,角色和所有OAuth表。
 - 当我创建具有管理员角色的用户时,它将使用管理员名称创建新数据库,它将创建具有用户,角色和所有OAuth表的子数据库。 的子 DB 将从主 DB 复制密码授予令牌和个人访问令牌并插入子 DB,并插入 到 .
oauth_clientsclient_idoauth_personal_access_clients 我正在做命令所做的所有过程。(如果我没有错过什么)。
passport:install当我使用master DB的凭据登录时,它工作完美,真正的问题始于我使用子数据库的凭据登录时,我可以在登录时从我输入的参数中获取子数据库。
client_codeemailpassword它允许我从子数据库登录,但我得到错误,在登录时获取访问令牌,并且在从前面登录后,我在每个请求上传递标头。
401 UnauthenticatedAuthenticationBearerAngular不知道我在这里错过了什么。
数据库连接中间件
DBConnection中间件在登录后为每个请求设置连接,
public function handle($request, Closure $next)
    {
        if ( $request->method() != 'OPTIONS' ) {            
            $this->access_code = $request->header('access-code'); 
            if ( $this->access_code != '' && $this->access_code != 'sa'  ) {
                app('App\Http\Controllers\Controller')->setDB(AppHelper::DB_PREFIX.$this->access_code);
            } else {
                app('App\Http\Controllers\Controller')->setDB(AppHelper::DB_DEFAULT);
            }
        }
        return $next($request);
    }
DBConnection动态设置默认DB,为此,我正在调用在database.phpsetDBController.php
setDB Controller.php
public function setDB($database='') {
      $config = app()->make('config');
      $connections = $config->get('database.connections');
      $default_connection = $connections[$config->get('database.default')];
      $new_connection = $default_connection;
      $new_connection['database'] = $database;
      $config->set('database.connections.'.$database, $new_connection);
      $config->set('database.default', $database);
  }
对于相同的代码,是否可以与2个不同的数据库一起使用?passport
Laravel 5.4
Passport 4.0
Angular 4.4在前端