Lumen5.4配置OAuth2.0【强迫症,就是要用最新版本的Lumen】

一、前言

  • 与学院提及的自带 PassPort 有所不同,本文采用了 'Packagist' 上面的第三方基于 'PassPort' 的修改包——'dusterio/lumen-passport'
  • 本文也将在原作者的基础上增加少许细节,仅供新手参考。
  • 相关指导文献: 理解OAuth 2.0、RESTful API 设计指南 。

二、所需环境及软件

  1. Composer
  2. Lumen`s Project
  3. IDE(PHPStorm 或者 SublimeText)
  4. PostMan

三、开始

  1. 编辑 Lumen项目根目录 下的 'composer.json'(最好每一次修改文件都备份):
    require:{
    ......others.......
             注意这一行末尾的逗号=>  ,
    "dusterio/lumen-passport": "^0.2.0"
    ......others.......
    }
    
    • 部分旧教程是用了"dusterio/lumen-passport": "0.1.7|0.1.9",会出现错误,是因为自5.2版本以后,'bindshared() => singleton()'
  2. 打开管理员 'CMD' 工具,定位到 Lumen项目根目录
    • composer update
  3. 更新完 Lumen项目根目录 的目录结构:
    ......others.......
    /vendor
    ~~~~~/dusterio                             <<<<<<新增
    .................others.............
    ~~~~~/laravel
    ~~~~~~~~~~/lumen-framework
    ~~~~~~~~~~/passport                        <<<<<<新增
    .................others.............
    ......others.......
    
  4. Lumen项目根目录 新建 'config' 文件夹,在 'config' 中新建 'auth.php',填入下列内容:
     [
          'guard' => 'api',
          'passwords' => 'users',
      ],
      'guards' => [
          'api' => [
              'driver' => 'passport',
              'provider' => 'users',
          ],
      ],
      'providers' => [
          'users' => [
              'driver' => 'eloquent',
              'model' => \App\User::class
          ]
      ]
    ];
    
  5. 打开 Lumen项目根目录 下的 'bootstrap/app.php',填入下列语句:
    withFacades();          //只是取消注释
    $app->withEloquent();         //只是取消注释
    //...........................others...............................
    $app->configure('auth');      //新增
    $app->routeMiddleware([
        'auth' => App\Http\Middleware\Authenticate::class,
    ]);                           //只是取消注释
    $app->register(Laravel\Passport\PassportServiceProvider::class);         //新增
    $app->register(Dusterio\LumenPassport\PassportServiceProvider::class);   //新增
    $app->alias('cache', 'Illuminate\Cache\CacheManager'); //新增,解决Lumen的Cache问题
    //...........................others...............................
    $app->register(App\Providers\AuthServiceProvider::class);    //只是取消注释
    //...........................others...............................
    return $app;
    
  6. 修改 Lumen项目根目录 下的 'app/User.php'
  7. 修改 Lumen项目根目录 下的 'app/Provider/AuthServiceProvider.php'
    app);              //新增
    //...........................others...............................
    
  8. 在数据库中新增 'Passport' 的相关数据表
     php artisan migrate
     php artisan passport:install             <<<在oauth_clients表中填充了2个数据
    
  9. 生成 'Passport' 需要的加密 'keys' 以便生成访问令牌:
    • php artisan passport:keys

    • 至此,Lumen5.4配置OAuth2.0 环境结束,使用方法与学院的Laravel文档中类似,这里只给出路由规则:

Lumen5.4配置OAuth2.0【强迫症,就是要用最新版本的Lumen】_第1张图片
Routes URL

四、结语

  1. 本教程面向新手,更多教程会在日后给出。
  2. 随着系统升级,软件更新,以后的配置可能有所变化,在下会第一时间测试并且更新教程;
  3. 欢迎联系在下,讨论建议都可以,之后会发布其它的教程。

你可能感兴趣的:(Lumen5.4配置OAuth2.0【强迫症,就是要用最新版本的Lumen】)