mirror of
https://github.com/hansjone/netx.git
synced 2026-10-09 05:30:46 +08:00
fix(UME): 改用HTTPTransport并增强token失败提示
UME 客户端改为显式 HTTPTransport 以匹配现网可用链路,前端在手动登录/续期或断开 token 失败时优先展示后端返回的错误信息,便于快速定位问题。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
267eddb273
commit
2c0b52d972
2 changed files with 25 additions and 8 deletions
|
|
@ -18,6 +18,7 @@ function toIsoNoMs(d: Date): string {
|
|||
|
||||
export function UmePage() {
|
||||
const queryClient = useQueryClient();
|
||||
const [tokenOpError, setTokenOpError] = useState("");
|
||||
const [syncPage, setSyncPage] = useState(1);
|
||||
const [syncPageSize, setSyncPageSize] = useState(20);
|
||||
const [neKeyword, setNeKeyword] = useState("");
|
||||
|
|
@ -71,15 +72,31 @@ export function UmePage() {
|
|||
});
|
||||
const tokenRefreshMutation = useMutation({
|
||||
mutationFn: refreshUmeToken,
|
||||
onSuccess: async () => {
|
||||
onSuccess: async (res) => {
|
||||
if (!res?.ok) {
|
||||
setTokenOpError(String(res.error || res.error_kind || "token_refresh_failed"));
|
||||
} else {
|
||||
setTokenOpError("");
|
||||
}
|
||||
await queryClient.invalidateQueries({ queryKey: ["umeTokenStatus"] });
|
||||
},
|
||||
onError: (err) => {
|
||||
setTokenOpError(String(err));
|
||||
},
|
||||
});
|
||||
const tokenDisconnectMutation = useMutation({
|
||||
mutationFn: disconnectUmeToken,
|
||||
onSuccess: async () => {
|
||||
onSuccess: async (res) => {
|
||||
if (!res?.ok) {
|
||||
setTokenOpError(String(res.error || res.error_kind || "token_disconnect_failed"));
|
||||
} else {
|
||||
setTokenOpError("");
|
||||
}
|
||||
await queryClient.invalidateQueries({ queryKey: ["umeTokenStatus"] });
|
||||
},
|
||||
onError: (err) => {
|
||||
setTokenOpError(String(err));
|
||||
},
|
||||
});
|
||||
|
||||
const tokenExpiresIn = Number(tokenStatusQuery.data?.expires_in_s || 0);
|
||||
|
|
@ -151,9 +168,9 @@ export function UmePage() {
|
|||
断开 token
|
||||
</button>
|
||||
</div>
|
||||
{(tokenRefreshMutation.error || tokenDisconnectMutation.error) && (
|
||||
{(tokenOpError || tokenRefreshMutation.error || tokenDisconnectMutation.error) && (
|
||||
<div className="pill pill--high">
|
||||
操作失败: {String(tokenRefreshMutation.error || tokenDisconnectMutation.error)}
|
||||
操作失败: {tokenOpError || String(tokenRefreshMutation.error || tokenDisconnectMutation.error)}
|
||||
</div>
|
||||
)}
|
||||
</article>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue