feat:rock增加手动刷新Token按钮
This commit is contained in:
@@ -794,6 +794,18 @@ export const rockApi = {
|
||||
request
|
||||
.post("/platform/rock/login-test", data)
|
||||
.then((r) => r.data.data as { username: string; role: string; points: number }),
|
||||
refreshRockToken: () =>
|
||||
request
|
||||
.post("/platform/rock/token/refresh")
|
||||
.then(
|
||||
(r) =>
|
||||
r.data.data as {
|
||||
username: string;
|
||||
role: string;
|
||||
points: number;
|
||||
refreshed_at: string;
|
||||
},
|
||||
),
|
||||
getStats: () =>
|
||||
request.get("/platform/rock/stats").then((r) => r.data.data as RockStats),
|
||||
refreshDashboard: () =>
|
||||
|
||||
@@ -32,6 +32,7 @@ export default function PlatformRock() {
|
||||
const [loadingStats, setLoadingStats] = useState(false)
|
||||
const [testingConn, setTestingConn] = useState(false)
|
||||
const [testingLogin, setTestingLogin] = useState(false)
|
||||
const [refreshingToken, setRefreshingToken] = useState(false)
|
||||
const [savingConfig, setSavingConfig] = useState(false)
|
||||
const [autoPurchaseEnabled, setAutoPurchaseEnabled] = useState(false)
|
||||
const [togglingAutoPurchase, setTogglingAutoPurchase] = useState(false)
|
||||
@@ -205,6 +206,20 @@ export default function PlatformRock() {
|
||||
}
|
||||
}
|
||||
|
||||
// 强制登录上游并保存新的 Token
|
||||
const handleRefreshToken = async () => {
|
||||
setRefreshingToken(true)
|
||||
try {
|
||||
const res = await rockApi.refreshRockToken()
|
||||
message.success(`Token 已刷新:${res.username}(${res.role}),积分 ${res.points}`)
|
||||
await loadData()
|
||||
} catch (e) {
|
||||
message.error('刷新 Token 失败: ' + (e instanceof Error ? e.message : '未知错误'))
|
||||
} finally {
|
||||
setRefreshingToken(false)
|
||||
}
|
||||
}
|
||||
|
||||
// 保存策略配置
|
||||
const handleSaveConfig = async () => {
|
||||
try {
|
||||
@@ -395,6 +410,8 @@ export default function PlatformRock() {
|
||||
lastTokenError={config?.last_token_error}
|
||||
testingLogin={testingLogin}
|
||||
onTestLogin={handleTestLogin}
|
||||
refreshingToken={refreshingToken}
|
||||
onRefreshToken={handleRefreshToken}
|
||||
togglingAutoPurchase={togglingAutoPurchase}
|
||||
testingConn={testingConn}
|
||||
savingConfig={savingConfig}
|
||||
|
||||
@@ -36,6 +36,8 @@ export interface RockStrategyCardProps {
|
||||
lastTokenError?: string
|
||||
testingLogin: boolean
|
||||
onTestLogin: () => void
|
||||
refreshingToken: boolean
|
||||
onRefreshToken: () => void
|
||||
togglingAutoPurchase: boolean
|
||||
testingConn: boolean
|
||||
savingConfig: boolean
|
||||
@@ -56,6 +58,8 @@ export function RockStrategyCard({
|
||||
lastTokenError,
|
||||
testingLogin,
|
||||
onTestLogin,
|
||||
refreshingToken,
|
||||
onRefreshToken,
|
||||
togglingAutoPurchase,
|
||||
testingConn,
|
||||
savingConfig,
|
||||
@@ -245,6 +249,9 @@ export function RockStrategyCard({
|
||||
<Button size="small" onClick={onTestLogin} loading={testingLogin}>
|
||||
测试登录
|
||||
</Button>
|
||||
<Button size="small" onClick={onRefreshToken} loading={refreshingToken}>
|
||||
刷新 Token
|
||||
</Button>
|
||||
{lastTokenError ? (
|
||||
<Text type="danger" style={{ fontSize: 12 }}>
|
||||
Token 刷新失败:{lastTokenError}
|
||||
|
||||
Reference in New Issue
Block a user