令牌输错时给出提示
登录页在提交前后都是同一个组件,不重建、输入框也不清空,401 静默处理的话 点了「进入」界面一个字都不变,看着像没反应。 只在提交令牌时提示:存着的令牌失效而弹回登录页时,页面本身就是说明。
This commit is contained in:
+15
-5
@@ -53,7 +53,7 @@ function openInbound(id: string) {
|
|||||||
* 选中的那一路入站丢失,改完一个设置还要重新找回原来的位置。所以只有首次加载显示占位,
|
* 选中的那一路入站丢失,改完一个设置还要重新找回原来的位置。所以只有首次加载显示占位,
|
||||||
* 之后都是原地更新。
|
* 之后都是原地更新。
|
||||||
*/
|
*/
|
||||||
async function load() {
|
async function load(): Promise<'ok' | 'unauthorized' | 'error'> {
|
||||||
refreshing.value = true
|
refreshing.value = true
|
||||||
loadError.value = ''
|
loadError.value = ''
|
||||||
try {
|
try {
|
||||||
@@ -64,22 +64,32 @@ async function load() {
|
|||||||
needsToken.value = false
|
needsToken.value = false
|
||||||
// 撤回/重做按钮的可用性跟着每次重读走
|
// 撤回/重做按钮的可用性跟着每次重读走
|
||||||
void refreshHistory()
|
void refreshHistory()
|
||||||
|
return 'ok'
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error instanceof ApiError && error.unauthorized) {
|
if (error instanceof ApiError && error.unauthorized) {
|
||||||
clearToken()
|
clearToken()
|
||||||
needsToken.value = true
|
needsToken.value = true
|
||||||
} else {
|
return 'unauthorized'
|
||||||
loadError.value = error instanceof Error ? error.message : String(error)
|
|
||||||
}
|
}
|
||||||
|
loadError.value = error instanceof Error ? error.message : String(error)
|
||||||
|
return 'error'
|
||||||
} finally {
|
} finally {
|
||||||
refreshing.value = false
|
refreshing.value = false
|
||||||
booted.value = true
|
booted.value = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function submitToken(value: string) {
|
/**
|
||||||
|
* 提交登录页填的令牌。
|
||||||
|
*
|
||||||
|
* 401 必须当场说一声:登录页在提交前后都是它自己,组件不重建、输入框也不清空,
|
||||||
|
* 不提示的话点了「进入」界面一个字都不变,看着像没反应。
|
||||||
|
* 只在这里提示,不在 load() 里——存着的令牌失效时弹回登录页,页面本身就是说明。
|
||||||
|
*/
|
||||||
|
async function submitToken(value: string) {
|
||||||
setToken(value)
|
setToken(value)
|
||||||
void load()
|
// 令牌在哪儿取,登录页上就写着,不必在提示里再说一遍
|
||||||
|
if ((await load()) === 'unauthorized') toast('令牌不正确', { kind: 'error' })
|
||||||
}
|
}
|
||||||
|
|
||||||
function logout() {
|
function logout() {
|
||||||
|
|||||||
Reference in New Issue
Block a user