首页 > 解决方案 > 根据 OAuth 令牌范围返回模型属性

问题描述

我如何根据请求用于授权的访问令牌中的范围返回laravel模型,类似于 discord 如何使用其身份和电子邮件范围进行授权。我想基本上“动态”隐藏/显示基于令牌范围的模型中的特定属性

这会是在控制器或模型中定义的东西吗?

标签: laraveleloquentoauth-2.0laravel-passport

解决方案


决定使用Laravel API 资源条件属性

class UserResource extends JsonResource
{
    /**
     * Transform the resource into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function toArray($request)
    {
        return [
            'id' => $this->id,
            'username' => $this->username,
            'email' => $this->when($request->user()->tokenCan('email'), $this->email),
        ];
    }
}

推荐阅读