File tree Expand file tree Collapse file tree 3 files changed +16
-8
lines changed Expand file tree Collapse file tree 3 files changed +16
-8
lines changed Original file line number Diff line number Diff 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 ( ) {
Original file line number Diff line number Diff 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}
Original file line number Diff line number Diff line change @@ -4,7 +4,7 @@ import { UserInfo } from '@/model/user-info'
44import { ExtConst } from '@/ctx/ext-const'
55
66export 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 }
You can’t perform that action at this time.
0 commit comments