# 令牌暂停
/*
|--------------------------------------------------------------------------
| 是否启用令牌暂停
|--------------------------------------------------------------------------
|
| 此选项决定是否启用令牌暂停功能。
| 设置为 false 时禁用令牌暂停。
|
*/
'suspend_enabled' => env('TOKEN_SUSPEND_ENABLED', true),
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
此选项确定是否启用令牌暂停功能。
设置为 false 时,禁用令牌暂停。
TIP
使用场景:
根据风控或限流,当令牌触发风控时,可以暂停该用户的所有令牌,
或者暂停当前平台的令牌,系统会自动剔除令牌下线,
用户再次登录时,获取到 auth_code 跳转至 验证或风控解除页面,完成评估后才能获取普通令牌。
# 令牌暂停
暂停当前令牌(即当前平台的令牌被冻结)
$request->user()->suspendToken();
1
暂停全局令牌(即当前用户的所有平台的令牌都被冻结)
$request->user()->suspendToken(true);
1
# 签发令牌
use Illuminate\Support\Facades\Auth;
Auth::guard('api')->login($user)->createToken('Hash Token');
1
2
3
2
3
通常情况下,签发令牌会获取到 access_token 和 refresh_token,但在令牌暂停时,会获取到 auth_code,需要使用 auth_code 换取 access_token 和 refresh_token。
# 恢复令牌
Auth::guard('api')->fromAuthCode()->createToken('Token');
1
当获取到 auth_code 时,可以调用 fromAuthCode 方法生成 access_token 和 refresh_token 。