1、使用composer安装
composer require tymon/jwt-auth 1.*@rc
2、配置
2.1发布配置文件
# 这条命令会在 config 下增加一个 jwt.php 的配置文件 php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"
2.2 生成加密密钥
# 这条命令会在 .env 文件下生成一个加密密钥,如:JWT_SECRET=foobar php artisan jwt:secret
2.3 更新用户模型
use Tymon\JWTAuth\Contracts\JWTSubject; use Illuminate\Notifications\Notifiable; use Illuminate\Foundation\Auth\User as Authenticatable;class User extends Authenticatable implements JWTSubject {use Notifiable;public function getJWTIdentifier(){return $this->getKey();}public function getJWTCustomClaims(){return [];}}
laravel请求第三方接口? 2.4 注册两个Facade(config/app.php)
'aliases' => [...// 添加以下两行'JWTAuth' => 'Tymon\JWTAuth\Facades\JWTAuth','JWTFactory' => 'Tymon\JWTAuth\Facades\JWTFactory', ],
辅助函数auth()、Facade类JWTAuth
2.5 修改auth.php
'guards' => ['web' => ['driver' => 'session','provider' => 'users',],'api' => ['driver' => 'jwt', // 原来是 token 改成jwt'provider' => 'users',], ],
token创建、获取、检验、解析、删除(获取)、刷新、使用
创建:基于账号密码、模型、模型id、辅助函数
$id = 1; $arr = ['username'=>'admin','username'=>'admin'];1、JWTAuth JWTAuth::attempt($arr);2、fromUser or fromSubject JWTAuth::fromUser($user);3、auth()1、auth()->login($user);2、auth()->tokenById($id);
获取
1、JWTAuth JWTAuth::parseToken(); JWTAuth::parseToken()->getToken(); JWTAuth::getToken();2、Auth auth()->getToken();
检验(合法性、有效性)
1、JWTAuth JWTAuth::setToken($token); JWTAuth::setToken($token)->check(); JWTAuth::parseToken()->check();2、auth() auth('api')->check()
解析
1、JWTAuth JWTAuth::parseToken(); JWTAuth::parseToken()->toUser(); JWTAuth::parseToken()->authenticate(); // only、attr2、auth() auth()->user() // only、attr auth()::parseToken()->toUser();
删除
1、JWTAuth JWTAuth::parseToken()->invalidate(); 2、auth() auth()->logout();
刷新
1、JWTAuth JWTAuth::parseToken()->refresh();
使用
1、url:?token=你的token2、header 中,建议用这种,因为在 https 情况下更安全:Authorization:Bearer 你的token
laravel手册。
php artisan key:generate php artisan jwt:secret php artisan config:clear php artisan config:cache
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态