diff --git a/drivers/189pc/driver.go b/drivers/189pc/driver.go index 6aa06c068..cc1115daf 100644 --- a/drivers/189pc/driver.go +++ b/drivers/189pc/driver.go @@ -87,7 +87,12 @@ func (y *Cloud189PC) Init(ctx context.Context) (err error) { } // 先尝试用Token刷新,之后尝试登陆 - if y.Addition.RefreshToken != "" { + if y.Addition.AccessToken != "" { + y.tokenInfo = &AppSessionResp{AccessToken: y.Addition.AccessToken, RefreshToken: y.Addition.RefreshToken} + if err = y.refreshSession(); err != nil { + return err + } + } else if y.Addition.RefreshToken != "" { y.tokenInfo = &AppSessionResp{RefreshToken: y.Addition.RefreshToken} if err = y.refreshToken(); err != nil { return err diff --git a/drivers/189pc/meta.go b/drivers/189pc/meta.go index 670b99116..366f1bf81 100644 --- a/drivers/189pc/meta.go +++ b/drivers/189pc/meta.go @@ -10,6 +10,7 @@ type Addition struct { Username string `json:"username" required:"true"` Password string `json:"password" required:"true"` VCode string `json:"validate_code"` + AccessToken string `json:"access_token" required:"false"` RefreshToken string `json:"refresh_token" help:"To switch accounts, please clear this field"` driver.RootID OrderBy string `json:"order_by" type:"select" options:"filename,filesize,lastOpTime" default:"filename"` diff --git a/drivers/189pc/utils.go b/drivers/189pc/utils.go index 08ee658ca..cc5e227c6 100644 --- a/drivers/189pc/utils.go +++ b/drivers/189pc/utils.go @@ -356,6 +356,7 @@ func (y *Cloud189PC) loginByPassword() (err error) { err = fmt.Errorf(tokenInfo.ResMessage) return err } + y.Addition.AccessToken = tokenInfo.AccessToken y.Addition.RefreshToken = tokenInfo.RefreshToken y.tokenInfo = &tokenInfo op.MustSaveDriverStorage(y) @@ -414,6 +415,7 @@ func (y *Cloud189PC) loginByQRCode() error { if tokenInfo.ResCode != 0 { return fmt.Errorf(tokenInfo.ResMessage) } + y.Addition.AccessToken = tokenInfo.AccessToken y.Addition.RefreshToken = tokenInfo.RefreshToken y.tokenInfo = &tokenInfo op.MustSaveDriverStorage(y) @@ -661,6 +663,7 @@ func (y *Cloud189PC) refreshTokenWithRetry(retryCount int) (err error) { return y.login() } + y.Addition.AccessToken = tokenInfo.AccessToken y.Addition.RefreshToken = tokenInfo.RefreshToken y.tokenInfo = &tokenInfo op.MustSaveDriverStorage(y)