通过授权者访问模型定义中的用户

时间:2018-09-16 23:51:48

标签: laravel oauth-2.0 laravel-5.1

在具有OAuth2的Laravel 5.1中,我想急于加载模型,但是将查询参数(来自用户模型)放置在急于加载的模型上。我认为最简单的方法是直接在模型上进行。

更具体地说,Activity属于Task。我只想加载与用户对象上的某些条件匹配的任务活动。使用OAuth2,我尝试通过Authorizer查找用户,然后访问其属性。该路线包含在Lucadegasperi的中间件中

$router->group(['middleware' => 'oauth'], function(Router $router) {
       $router->get('tasks/{task}', 'Resources\Tasks@show');

请求标头似乎可以通过bearer令牌传递。

我可以通过控制器内的Authorizer访问用户,但不能在模型定义中访问用户。为什么会这样?

我遇到错误:

  

Authorizer.php第104行中的NoActiveAccessTokenException:尝试用于   在没有有效访问令牌的情况下访问会话数据

use LucaDegasperi\OAuth2Server\Facades\Authorizer;
use App\User;

class Task extends BaseModel
{
    protected $with = ['activities'];

    public function activities()
    {
        $user = User::find(Authorizer::getResourceOwnerId());
        return $this->hasMany(Activity::class)->where('id', '=', $user->...);
    }

0 个答案:

没有答案