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')){
    
     }
  • 相关阅读:
    db2新添用户
    merge的用法
    oracle常用命令
    oracle建用户
    获得当前时间的PRO
    全部快捷方式图标变成LNK文件怎么办
    随机生成数据的三种方法
    db2查看表空间
    db2疑难解决
    AVG()和to_date()函数的使用
  • 原文地址:https://www.cnblogs.com/paopaocheng/p/9830946.html
Copyright © 2011-2022 走看看