JWT
开始
composer require tymon/jwt-auth
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"
php artisan jwt:secret
用户模型
<?php
namespace App;
use Tymon\JWTAuth\Contracts\JWTSubject;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable implements JWTSubject
{
use Notifiable;
// 为了简洁省略其余部分
/**
* 获取将存储在 JWT 主题声明中的标识符。
*
* @return mixed
*/
public function getJWTIdentifier()
{
return $this->getKey();
}
/**
* 返回一个键值数组,其中包含要添加到 JWT 的任何自定义声明。
*
* @return array
*/
public function getJWTCustomClaims()
{
return [];
}
}'defaults' => [ 'guard' => 'api', 'passwords' => 'users', ], ... 'guards' => [ 'api' => [ 'driver' => 'jwt', 'provider' => 'users', ], ],
中间件
@Apidoc\RouteMiddleware("jwt.auth")使用
// 从某处获取一些用户 $user = User::first(); // 获取 token $token = auth()->login($user);
// 获取当前认证的用户 $user = auth()->user();