jundayw / laravel-tokens
laravel tokens
v2.0.0
2020-09-28 07:18 UTC
Requires
- php: >=7.2.0
- lcobucci/jwt: ^3.3
This package is auto-updated.
Last update: 2024-11-17 12:40:07 UTC
README
命令行下, 执行 composer 命令安装:
composer require jundayw/laravel-tokens
使用方法
authentication package that is simple and enjoyable to use.
配置方法
将配置文件 auth.php 中 guards 的 driver 字段修改为 tokens
'guards' => [ 'web' => [ 'driver' => 'tokens', 'provider' => 'users', ], ],
用户信息获取、登录及退出操作
use Jundayw\LaravelTokens\HasTokens; use Jundayw\LaravelTokens\HasTokensContract; class User extends Authenticatable implements HasTokensContract { use HasTokens; public function login(Request $request){ $guard = config("auth.defaults.guard");// web $provider = config("auth.guards.{$guard}.provider");// users $model = config("auth.providers.{$provider}.model");// App\User::class //获取默认用户 guard 配置,可根据业务情况获取 $guard 及 $model 参数 $user = $request->user($guard); //登录逻辑 Auth::guard($guard)->claims([ 'iss' => $model, 'sub' => 'android',// web,ios,android 也可传入 user-agent 确定用户唯一性 'aud' => 'weixin',// pc,weixin,alipay 也可传入 user-agent 确定用户唯一性 ])->login(User::find(1)); //退出登录 Auth::guard($guard)->logout(); } }
发布配置文件
php artisan vendor:publish --tag=tokens-config
发布迁移文件
php artisan vendor:publish --tag=tokens-migrations
发布迁移文件仅在同一用户不允许多端同时登陆时需要,并且需要:
1、通过 Auth::extend 扩展 TokensGuard 类;
2、重写 TokensGuard 类的 login 方法,将用户信息写入 tokens 表;
3、重写 TokensGuard 类的 getTokensForRequest 方法判定当前用户(tokens 表的 tokens_revoked 字段)是否已被挤下线。