2.10. OAuth 2.0 认证
请查看 Authentication 章节,了解怎么配置 OAuth 2.0 provider。
定义路由 Scopes
通过使用 scopes,你可以对你的受保护的 API 拥有更多的控制。scopes 可以被设置在一个分组或一个路由上,使用数组或者管道分隔的字符串。
路由分组 Scopes
$api->version('v1', ['middleware' => 'api.auth', 'scopes' => ['read_user_data', 'write_user_data']], function ($api) {
    // 只有具有 “read_user_data” 权限的令牌才可以访问。
});指定路由 Scopes
$api->version('v1', ['middleware' => 'api.auth'], function ($api) {
    $api->get('user', ['scopes' => 'read_user_data', function () {
        // 只有具有 “read_user_data” 权限的令牌才可以访问。
    }]);
});控制器 Scopes
如果你的控制器使用 Dingo\Api\Routing\Helpers trait,那么你可以使用 scopes 方法。
use Dingo\Api\Routing\Helpers;
class UserController extends Controller
{
    use Helpers;
    public function __construct()
    {
        $this->scopes('read_user_data');
    }
}你可以通过第二个参数作为一个管道分隔的字符串或者数组来定义你想要应用 scopes 的方法。如果你不提供这个方法,scopes 将会应用于所有方法。你也可以使用 except 和 only 数组关键字来应用 scopes 到方法的子集。
use Dingo\Api\Routing\Helpers;
class UserController extends Controller
{
    use Helpers;
    public function __construct()
    {
        // 仅仅应用于 index 方法。
        $this->scopes('read_user_data', 'index');
        // 应用于 store 方法之外的所有方法。
        $this->scopes('read_user_data', ['except' => 'store']);
        // 仅仅应用于 store 方法
        $this->scopes('write_user_data', ['only' => ['store']]);
    }
    public function index()
    {
        //
    }
    public function store()
    {
        //
    }
}本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
 
           Dingo API 2.0.0 中文文档
Dingo API 2.0.0 中文文档 
                     
                     
         
         
         
         
             
             关于 LearnKu
                关于 LearnKu
               
                     
                     
                     粤公网安备 44030502004330号
 粤公网安备 44030502004330号 
 
推荐文章: