Skip to content

Commit f5b0e5e

Browse files
authored
Merge pull request #275 from cnblogs/fix-command-not-found
fix: command not found
2 parents 4f7d9ea + 6cd2297 commit f5b0e5e

File tree

3 files changed

+16
-8
lines changed

3 files changed

+16
-8
lines changed

Diff for: src/auth/auth-manager.ts

+6-3
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,13 @@ export namespace AuthManager {
7575
export async function acquireToken() {
7676
const session = await ensureSession({ createIfNone: false })
7777

78-
if (session === undefined) throw Error('未授权')
79-
if (isAuthSessionExpired(session)) throw Error('授权已过期')
78+
if (session === undefined) Alert.throwWithWarn('未授权')
79+
if (isAuthSessionExpired(session)) {
80+
void Alert.warn('授权已过期,请重新登录')
81+
await logout()
82+
}
8083

81-
return session.accessToken
84+
return session?.accessToken
8285
}
8386

8487
export async function updateAuthStatus() {

Diff for: src/infra/alert.ts

+5
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,9 @@ export namespace Alert {
3131
file = trimExt ? path.basename(file, path.extname(file)) : file
3232
void Alert.warn(`本地文件 ${file} 未关联博客园博文`)
3333
}
34+
35+
export function throwWithWarn(message: string): never {
36+
void warn(message)
37+
throw Error(message)
38+
}
3439
}

Diff for: src/service/user.service.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { UserInfo } from '@/model/user-info'
44
import { ExtConst } from '@/ctx/ext-const'
55

66
export namespace UserService {
7-
export async function getUserInfo(): Promise<UserInfo> {
7+
export async function getUserInfo(): Promise<UserInfo | null> {
88
const token = await AuthManager.acquireToken()
99
// TODO: need better solution
1010
const isPatToken = token.length === 64
@@ -16,7 +16,7 @@ export namespace UserService {
1616
return userInfo?.blogApp != null
1717
}
1818

19-
export async function getUserInfoWithToken(token: string, isPat: boolean): Promise<UserInfo> {
19+
export async function getUserInfoWithToken(token: string, isPat: boolean): Promise<UserInfo | null> {
2020
const url = `${ExtConst.ApiBase.OPENAPI}/users/v2`
2121

2222
const headers = new Headers()
@@ -35,9 +35,9 @@ export namespace UserService {
3535
if (!req.ok) {
3636
const message = `${req.status} ${req.statusText}`
3737
if (req.status === 401) {
38-
void Alert.err(
39-
'获取用户信息失败,可能是个人访问令牌(PAT)失效或者不存在,重新[创建PAT](https://account.cnblogs.com/settings/tokens)'
40-
)
38+
void Alert.warn('获取用户信息失败,请重新登录')
39+
await AuthManager.logout()
40+
return null
4141
} else {
4242
void Alert.err(`获取用户信息失败,错误详情: ${message}`)
4343
}

0 commit comments

Comments
 (0)