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

编辑 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()'

打开管理员 'CMD' 工具,定位到 Lumen项目根目录:

composer update

更新完 Lumen项目根目录 的目录结构:

......others.......

/vendor

~~~~~/dusterio <<<<<

.................others.............

~~~~~/laravel

~~~~~~~~~~/lumen-framework

~~~~~~~~~~/passport <<<<<

.................others.............

......others.......

在 Lumen项目根目录 新建 'config' 文件夹,在 'config' 中新建 'auth.php',填入下列内容:

return [

'defaults' => [

'guard' => 'api',

'passwords' => 'users',

],

'guards' => [

'api' => [

'driver' => 'passport',

'provider' => 'users',

],

],

'providers' => [

'users' => [

'driver' => 'eloquent',

'model' => \App\User::class

]

]

];

打开 Lumen项目根目录 下的 'bootstrap/app.php',填入下列语句:

//...........................others...............................

$app->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;

修改 Lumen项目根目录 下的 'app/User.php':

namespace App;

use Illuminate\Auth\Authenticatable;

use Laravel\Lumen\Auth\Authorizable;

use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;

use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;

use Illuminate\Database\Eloquent\Model;

use Laravel\Passport\HasApiTokens; //新增

class User extends Model implements AuthenticatableContract, AuthorizableContract

{

use Authenticatable, Authorizable;

use HasApiTokens; //新增

//...........................others...............................

修改 Lumen项目根目录 下的 'app/Provider/AuthServiceProvider.php':

//...........................others...............................

use Dusterio\LumenPassport\LumenPassport; //新增

class AuthServiceProvider extends ServiceProvider

{

//...........................others...............................

public function boot()

{

//...........................others...............................

LumenPassport::routes($this->app); //新增

//...........................others...............................

在数据库中新增 'Passport' 的相关数据表

php artisan migrate

php artisan passport:install <<

生成 'Passport' 需要的加密 'keys' 以便生成访问令牌:

php artisan passport:keys

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值