代码之家  ›  专栏  ›  技术社区  ›  loic.lopez

Laravel Passport发行多个代币的良好实践

  •  0
  • loic.lopez  · 技术社区  · 7 年前

    我有一个关于 拉威尔护照 以及管理api访问令牌的最佳方法。

    • 一种由货币发行的代币 grant_type: password 没有范围:
        $data = [
             'grant_type' => 'password',
             'client_id' => $client_id,
             'client_secret' => $client_secret,
             'username' => $user->email,
             'password' => $user->password,
             'scope' => '',
         ];
      
    • 仅用于视图的标记 通过这样的创造:
      $token = $user->createToken('User Picture token', ['view-picture'])->accessToken;
      

    授权类型:密码

    这是个好习惯吗?

    “消息”资源 包含对其访问令牌的CRUD操作 具有特定范围。

    所以我们要保护每一个资源

    个人访问令牌是否用于?

    为了管理用户权限,我们使用Laravel的Gates&Policies。

    0 回复  |  直到 5 年前
        1
  •  1
  •   Kenny Horna    7 年前

    LaravelPassport使您能够在几分钟内实现一个完整的Oauth2服务器。这意味着,您可以装载一个完整的服务器,不仅可以管理对自己应用程序的访问,还可以管理对第三方应用程序的访问。

    当我说 “你自己的应用程序” “第三方应用程序” 我指的是那些由其他开发者开发的可以访问你的API的。令牌作用域是限制第三方应用程序可以代表用户执行的操作的好方法。

    Passport documentation :

    令牌作用域

    作用域允许API客户端在请求访问帐户的授权时请求特定的权限集。例如,如果您正在构建一个电子商务应用程序,那么并非所有API使用者都需要下订单的能力。相反,您可能只允许消费者请求授权来访问订单装运状态。换句话说, 作用域允许应用程序的用户限制第三方应用程序可以代表其执行的操作 .

    然后,您只需通过令牌来标识用户,并检查该用户是否具有执行特定操作或访问某些数据(或部分数据)的权限/角色。

    推荐文章