# 多令牌支持
/*
|--------------------------------------------------------------------------
| 多令牌支持
|-----------------------------------------------------------------------------------------
|
| 启用后,用户可以同时持有多个有效令牌,
| 例如,每个平台(Web、APP、API 等)同时持有多个有效令牌。
|
*/
'multi_token' => [
/*
|-----------------------------------------------------------------------------------
| 是否启用多令牌支持
|-----------------------------------------------------------------------------------------
|
| 此选项决定是否可以为单个用户发放多个有效令牌。
| 启用后,用户可以在不同平台(例如Web、APP或 API 客户端)上持有不同的令牌,
| 从而允许同一帐户下同时进行会话。
|
*/
'enabled' => true,
/*
|--------------------------------------------------------------------------------------
| 允许多个平台
|--------------------------------------------------------------------------------------
|
| 设置为 true 时,不同平台(例如,“PC”、“移动”、“应用”)的令牌
| 可以同时保持有效。
| 如果为 false,则发放新令牌将使所有现有令牌失效
| 无论平台如何。
|
*/
'allow_multi_platforms' => true,
/*
|--------------------------------------------------------------------------
| 多平台令牌
|---------------------------------------------------------------------------
|
| 允许同一用户同时拥有多个有效令牌的平台列表。
| 示例:['pc'] 允许同时为 PC 平台拥有多个令牌。
|
*/
'multi_platform_tokens' => [],
],
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
TIP
allow_multi_platforms
设置为 true 时,不同平台(例如,PC、mobile、App)的令牌可以同时保持有效。
设置为 false 时,无论平台如何,发放新令牌都将使所有现有令牌失效。
TIP
multi_platform_tokens
允许同一用户同时拥有多个活动令牌的平台列表。
示例:['pc'] 允许同时为 PC 平台使用多个令牌。
# 配置优先级
config/auth.php 中的 guards 配置优先于 config/tokenable.php 中的 multi_token 配置,因此可以在 config/auth.php 中覆盖 config/tokenable.php 中的配置。
'guards' => [
'api' => [
'driver' => 'tokenable',
'provider' => 'users',
'allow_multi_platforms' => false,
],
'web' => [
'driver' => 'tokenable',
'provider' => 'users',
'allow_multi_platforms' => true,
'multi_platform_tokens' => ['pc', 'h5'],
],
],
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
上述配置将允许同一用户在 PC 和 H5 平台各签发多个令牌,但 API 平台仅有一个最新令牌有效。
use Illuminate\Support\Facades\Auth;
// api
Auth::guard('api')->login($user)->createToken('API Token');
// web
Auth::guard('web')->login($user)->createToken('PC Token', 'pc');
Auth::guard('web')->login($user)->createToken('H5 Token', 'h5');
1
2
3
4
5
6
2
3
4
5
6