zoukankan      html  css  js  c++  java
  • 【laravel】passport的scope作用域

    1.根据作用域生成token

    $user->createToken($request->name,['test1'])->accessToken;

    2.注册中间件

    'scopes' => \App\Http\Middleware\CheckScopes::class,
    'scope' => \App\Http\Middleware\CheckForAnyScope::class
    

    3.添加指定路由的中间件

    ->middleware(['scope:test1,test2']);

    4.passport提供的中间件很好的完成了限制的功能 当没有指定的作用域的时候会抛出异常 不太友好 所以重写了两个中间件 做出相应的解决办法

    class CheckForAnyScope extends \Laravel\Passport\Http\Middleware\CheckForAnyScope
    {
    
        public function handle($request, $next, ...$scopes){
            try{
                $request = parent::handle($request, $next, ...$scopes);
                return $request;
            }catch(MissingScopeException $e){
    
                Log::info(['error' => $e->getMessage()]);
                abort(404);
            }
        }
    }

    5.检查是否有该作用域权限

     if($request->user()->tokenCan('test1')){
    
     }
  • 相关阅读:
    mysql
    Spring MVC
    springSecurity
    导出Excel报表
    Redis集群搭建
    Oracle 分析数据库表行长度的统计信息 使用聚簇的步骤
    Dbms.job 学习
    oracel 学习系列
    Oracle 工具类 Sql 分析索引的 碎片率
    oracl
  • 原文地址:https://www.cnblogs.com/paopaocheng/p/9830946.html
Copyright © 2011-2022 走看看