Skip to content

Commit 2861b5d

Browse files
committed
feat(system/client): 添加双token认证配置
1 parent dc8b35d commit 2861b5d

4 files changed

Lines changed: 44 additions & 1 deletion

File tree

src/apis/system/type.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,8 @@ export interface ClientResp {
296296
timeout: string
297297
status: string
298298
isConcurrent: boolean
299+
isEnableRefreshToken: boolean
300+
refreshTokenTimeout: number
299301
replacedRange: string
300302
maxLoginCount: number
301303
overflowLogoutMode: string
@@ -316,6 +318,8 @@ export interface ClientDetailResp {
316318
timeout: string
317319
status: number
318320
isConcurrent: boolean
321+
isEnableRefreshToken: boolean
322+
refreshTokenTimeout: number
319323
maxLoginCount: number
320324
replacedRange: string
321325
overflowLogoutMode: string

src/views/system/config/client/AddModal.vue

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ const [form, resetForm] = useResetReactive({
3939
timeout: 86400,
4040
isConcurrent: true,
4141
maxLoginCount: -1,
42+
isEnableRefreshToken: false,
43+
refreshTokenTimeout: 2592000,
4244
status: 1,
4345
})
4446
@@ -118,6 +120,39 @@ const columns: ColumnItem[] = reactive([
118120
},
119121
rules: [{ required: true, message: '请输入 Token 有效期' }],
120122
},
123+
{
124+
label: '是否启用Refresh Token',
125+
field: 'isEnableRefreshToken',
126+
type: 'switch',
127+
span: 12,
128+
props: {
129+
type: 'round',
130+
checkedValue: true,
131+
uncheckedValue: false,
132+
checkedText: '启用',
133+
uncheckedText: '禁用',
134+
},
135+
},
136+
{
137+
label: () => (
138+
<a-tooltip content="小于0,则和 Token 有效期相同">
139+
Refresh Token 有效期
140+
<icon-question-circle />
141+
</a-tooltip>
142+
),
143+
field: 'refreshTokenTimeout',
144+
type: 'input-number',
145+
span: 12,
146+
slots: {
147+
append: () => (
148+
<span style={{ width: '30px', textAlign: 'center' }}>秒</span>
149+
),
150+
},
151+
props: {
152+
placeholder: '请输入 Refresh Token 有效期',
153+
},
154+
rules: [{ required: true, message: '请输入 Refresh Token 有效期' }],
155+
},
121156
{
122157
label: '是否允许同一账号多地同时登录',
123158
field: 'isConcurrent',

src/views/system/config/client/DetailDrawer.vue

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
</a-descriptions-item>
1414
<a-descriptions-item label="Token最低活跃频率">{{ dataDetail?.activeTimeout }}</a-descriptions-item>
1515
<a-descriptions-item label="Token有效期">{{ dataDetail?.timeout }}</a-descriptions-item>
16+
<a-descriptions-item label="启用Refresh Token">{{ dataDetail?.isEnableRefreshToken ? '是' : '否' }}</a-descriptions-item>
17+
<a-descriptions-item label="Refresh Token 有效期">{{ dataDetail?.refreshTokenTimeout }}</a-descriptions-item>
1618
<a-descriptions-item label="状态" :span="2">
1719
<a-tag v-if="dataDetail?.status === 1" color="green">启用</a-tag>
1820
<a-tag v-else color="red">禁用</a-tag>

src/views/system/config/client/index.vue

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
:data="dataList"
66
:columns="columns"
77
:loading="loading"
8-
:scroll="{ x: '100%', y: '100%', minWidth: 1400 }"
8+
:scroll="{ x: '100%', y: '100%', minWidth: 1760 }"
99
:pagination="pagination"
1010
:disabled-tools="['size']"
1111
:disabled-column-keys="['clientKey']"
@@ -149,6 +149,8 @@ const columns: TableInstance['columns'] = [
149149
},
150150
{ title: 'Token 最低活跃频率', dataIndex: 'activeTimeout', slotName: 'activeTimeout', width: 180, align: 'center', render: ({ record }) => `${record.activeTimeout} 秒` },
151151
{ title: 'Token 有效期', dataIndex: 'timeout', slotName: 'timeout', width: 180, align: 'center', render: ({ record }) => `${record.timeout} 秒` },
152+
{ title: '启用Refresh Token', dataIndex: 'isEnableRefreshToken', slotName: 'isEnableRefreshToken', width: 180, align: 'center', render: ({ record }) => `${record.isEnableRefreshToken ? '' : ''}` },
153+
{ title: 'Refresh Token 有效期', dataIndex: 'refreshTokenTimeout', slotName: 'refreshTokenTimeout', width: 180, align: 'center', render: ({ record }) => `${record.refreshTokenTimeout} 秒` },
152154
{
153155
title: '状态',
154156
dataIndex: 'status',

0 commit comments

Comments
 (0)