Маршруты Laravel Passport не выбираются на маршрутах арендаторов - PullRequest
0 голосов
/ 24 октября 2019

Я использую пакет Hyn / Tenancy и настраиваю его на то, что если laravel обнаружит, что используемый URL-адрес является поддоменом, он будет использовать файл маршрутов tenants.php вместо файла web.php для маршрутов. Проблема в том, что я также использую Laravel Passport для арендаторов, но маршруты не работают на версии арендатора. Я подозреваю его, потому что он использует совершенно другой маршрутизатор.

Ниже приведен метод маршрутизации, вызываемый в моем AuthServiceProvider (это метод Passport по умолчанию)

public static function routes($callback = null, array $options = [])
{
    $callback = $callback ?: function ($router) {
        $router->all();
    };

    $defaultOptions = [
        'prefix' => 'oauth',
        'namespace' => '\Laravel\Passport\Http\Controllers',
    ];

    $options = array_merge($defaultOptions, $options);

    Route::group($options, function ($router) use ($callback) {
        $callback(new RouteRegistrar($router));
    });
}

, и это мой AuthServiceProvider

public function boot()
{
    $this->registerPolicies();

    Passport::routes(null, [
        'prefix' => 'api/v1/oauth',
    ]);
}

Как видно из метода Routes (), он вызывает переменную $ router. Но я не понимаю, откуда берется var, и я подозреваю, что это причина того, что он не работает на маршрутах арендаторов. Как мне отладить или выяснить, в чем может быть проблема?

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

Route::group([
    'prefix' => 'api/v1/oauth',
    'namespace' => '\Laravel\Passport\Http\Controllers',
    'middleware' => 'tenancy.enforce'
], function () {
    Route::post('/token', [
        'uses' => 'AccessTokenController@issueToken',
        'as' => 'passport.token',
    ]);
});
...