龙行博客

走路看风景,经历看人生,岁月留痕迹,人生留轨迹,17的历史,18的豪情,时间的匆忙,人生的风景,放开心胸往前走,成功再远行,放开理想往前走,梦想再行动。
现在位置:首页 > 编程语言 > PHP > Lumen-jwt最详细用户认证

Lumen-jwt最详细用户认证

龙行    PHP    2020-8-22    352    0评论    

Lumen-jwt用户认证

下载安装Lumen

composer create-project --prefer-dist laravel/lumen lumen

生成secret

php artisan jwt:secret

安装tymon/jwt

composer require tymon/jwt-auth:"^1.0@dev"

复制vendor/laravel/lumen-framework/config/auth.phpconfig目录

修改auth.php

<?php

return [

   'defaults' => [
       'guard' => env('AUTH_GUARD', 'api'),
   ],

   'guards' => [
       'api' => [
           'driver' => 'jwt',
           'provider'=>'users'
       ],
   ],

   'providers' => [
       //
       // 原来为空 现在填写一下内容
       'users' =>[
           'driver' => 'eloquent',
           'model'  => \App\User::class,
       ],
   ],

   'passwords' => [
       //
   ],

];

修改User模型

<?php

namespace App;

use Illuminate\Auth\Authenticatable;
use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Database\Eloquent\Model;
use Laravel\Lumen\Auth\Authorizable;
use Tymon\JWTAuth\Contracts\JWTSubject;

class User extends Model implements AuthenticatableContract, AuthorizableContract,JWTSubject
{
   use Authenticatable, Authorizable;

   /**
    * The attributes that are mass assignable.
    *
    * @var array
    */
   protected $fillable = [
       'name', 'email',
   ];

   /**
    * The attributes excluded from the model's JSON form.
    *
    * @var array
    */
   protected $hidden = [
       'password',
   ];

   public function getJWTIdentifier(){
       return $this->getKey();
   }

   /**
    * Return a key value array, containing any custom claims to be added to the JWT.
    *
    * @return array
    */
   public function getJWTCustomClaims(){
       return [];
   }
}

bootstrap/app.php添加注册

$app->register(\Tymon\JWTAuth\Providers\LumenServiceProvider::class);

打开auth需要的注释

1.
$app->withFacades();

$app->withEloquent();
注释去掉。这样就可以通过Auth::user(),获取到当前用户

2.将auth中间件取消注释
$app->routeMiddleware([
‘auth’ => App\Http\Middleware\Authenticate::class,
]);

3.
$app->register(App\Providers\AppServiceProvider::class);
$app->register(App\Providers\AuthServiceProvider::class);
注释去掉

获取用户信息

auth()->user();
app('auth')->user();

登出授权,作废token

auth()->logout(true)

判断token是否存在

auth()->check()

获取当前经过身份验证的用户

auth()->guest()

客户端获取token请求方式

Authorization: Bearer eyJhbGciOiJIUzI1NiI...
评论一下 分享本文 赞助站长

赞助站长X

扫码赞助站长
联系站长
龙行博客
  • 版权申明:此文如未标注转载均为本站原创,自由转载请表明出处《龙行博客》。
  • 本文网址:https://www.liaotaoo.cn/376.html
  • 上篇文章:不用递归实现无限极
  • 下篇文章:Laravel数据库查询中对 like 的值进行转义
  • Lumen
快捷导航
联系博主
在线壁纸
给我留言
四四五五
音乐欣赏
返回顶部