From 9dd2482b58d0e815090237adcdf1f92be73c774d Mon Sep 17 00:00:00 2001 From: tickstep Date: Sat, 2 Mar 2024 22:10:54 +0800 Subject: [PATCH] add openapi token refresh hook --- internal/config/pan_user.go | 14 ++++++++++---- internal/config/utils.go | 4 ++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/internal/config/pan_user.go b/internal/config/pan_user.go index 3161c7d..ccb5022 100644 --- a/internal/config/pan_user.go +++ b/internal/config/pan_user.go @@ -133,10 +133,8 @@ doOpenLoginAct: }, openapi.ApiToken{ AccessToken: openapiToken.AccessToken, ExpiredAt: openapiToken.Expired, - }, func(newToken openapi.ApiToken) error { - // TODO: save & refresh new token - return nil - }) + }, nil) + // open api token maybe expired // check & refresh new one openUserInfo, err := openPanClient.GetUserInfo() @@ -229,6 +227,14 @@ doWebLoginAct: Workdir: "/", WorkdirFileEntity: *aliyunpan.NewFileEntityForRootDir(), } + u.PanClient().OpenapiPanClient().SetAccessTokenRefreshCallback(func(userId string, newToken openapi.ApiToken) error { + logger.Verboseln("openapi token refresh, update for user") + u.OpenapiToken = &PanClientToken{ + AccessToken: newToken.AccessToken, + Expired: newToken.ExpiredAt, + } + return nil + }) // setup user info name := "Unknown" diff --git a/internal/config/utils.go b/internal/config/utils.go index b7ea902..41f7d41 100644 --- a/internal/config/utils.go +++ b/internal/config/utils.go @@ -4,7 +4,7 @@ // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // -// http://www.apache.org/licenses/LICENSE-2.0 +// http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, @@ -109,7 +109,7 @@ func DecryptString(text string) string { return string(r) } -// isFolderExist 判断文件夹是否存在 +// IsFolderExist 判断文件夹是否存在 func IsFolderExist(pathStr string) bool { fi, err := os.Stat(pathStr) if err != nil {