Получить `Authorizer :: getResourceOwnerId ()` на уровне модели - PullRequest
0 голосов
/ 04 ноября 2018

Я использую OAuth2 от Lucasdegasperi для Laravel 5.1. Прежде чем делать какие-либо другие запросы, я запрашиваю токен доступа через свой сервер и регистрирую пользователя.

Затем, с этим access_token, я получаю model1.

Если я пытаюсь получить доступ к Authorizer::getResourceOwnerId() в контроллере, я могу получить его без проблем. Но если я попытаюсь получить доступ к Authorizer::getResourceOwnerId() в определении загруженной модели, он завершится с ошибкой:

Попытка доступа к данным сеанса без активного маркера доступа laravel

Вопрос : как я могу получить Authorizer::getResourceOwnerId() на уровне модели?

Маршруты:

$router->get('model1s/{model1}', 'Resources\Model1Controller@show');

Model1Controller:

use LucaDegasperi\OAuth2Server\Facades\Authorizer;
use App\User;
class Model1Controller extends Controller
{
    ...
    public function show(Model $model)
    {
        $owner_id = Authorizer::getResourceOwnerId(); // no error

        die($owner_id); // has no issue getting owner ID

        return $model;
    }

Модель 1:

class Model1 extends BaseModel
{
    protected $with = ['model2'];

    ...

}

Модель 2:

use LucaDegasperi\OAuth2Server\Facades\Authorizer;
use App\User;
class Model2 extends BaseModel
{
    protected $with = ['model3'];

    ...

    public function model3()
    {
        $owner_id = Authorizer::getResourceOwnerId(); // ERROR: Tried to access session data without an active access token laravel

        ...

        $user = User::find(owner_id);
        $locale_id = $user->profiles[0]->locale_id;

        ...

        return $this->hasMany(Model3::class, 'model3_id', 'id')->where('locale_id', '=', $locale_id);
    }

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