代码之家  ›  专栏  ›  技术社区  ›  Tarasovych

如果用户被授权,则返回附加列-API

  •  0
  • Tarasovych  · 技术社区  · 6 年前

    我有一个Laravel基本API,它处理客户端和管理端点(有两个站点 domain.com admin.domain.com ). 我的身份验证基于cookie,哪个域是 <.domain.com> . 如您所见,此cookie对两个域都是可接受的。
    我使用雄辩的Api资源来转换数据层。是我的 when() 这里的路线检查安全吗?

    public function toArray($request)
    {
        return [
            'name' => $this->name,
            'created_at' => (string)$this->created_at,
            'status' => $this->when($request->route()->getName() === 'api.admin.users.index', $this->status)
        ];
    }
    

    在我使用之前 $this->when(Auth::check(), ...) ,但由于客户端站点也可以接受我的身份验证cookie,因此可能会获取不需要的数据。 我的路线:

    Route::group(['prefix' => 'admin', 'as' => 'api.admin.', 'middleware' => 'auth:api'], function () {
        Route::resource('users', ...);
    });
    

    如果用户没有被授权,他将无法获得数据,因为中间件同时,授权用户(拥有未过期的cookie)在客户端不会获得不必要的数据。
    谢谢您!

    1 回复  |  直到 6 年前
        1
  •  1
  •   Namoshek    6 年前

    我认为你的方法很好路由名称是内部的,用户不能修改它你可以通过使用 \Route::is('api.admin.*') 不过然后它将适用于所有的管理API路由。

    推荐文章