Я использую 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);
}
}