mirror of
https://github.com/OpenListTeam/OpenList.git
synced 2026-10-10 04:53:09 +08:00
fix(drivers/thunder): handle missing token errors (#2623)
This commit is contained in:
@@ -88,6 +88,9 @@ func (x *Thunder) Init(ctx context.Context) (err error) {
|
|||||||
// 清空 信任密钥
|
// 清空 信任密钥
|
||||||
x.Addition.CreditKey = ""
|
x.Addition.CreditKey = ""
|
||||||
}
|
}
|
||||||
|
if token == nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
x.SetTokenResp(token)
|
x.SetTokenResp(token)
|
||||||
return err
|
return err
|
||||||
},
|
},
|
||||||
@@ -521,6 +524,9 @@ func (xc *XunLeiCommon) SetCoreTokenResp(tr *CoreLoginResp) {
|
|||||||
|
|
||||||
// 携带Authorization和CaptchaToken的请求
|
// 携带Authorization和CaptchaToken的请求
|
||||||
func (xc *XunLeiCommon) Request(url string, method string, callback base.ReqCallback, resp interface{}) ([]byte, error) {
|
func (xc *XunLeiCommon) Request(url string, method string, callback base.ReqCallback, resp interface{}) ([]byte, error) {
|
||||||
|
if xc.TokenResp == nil {
|
||||||
|
return nil, errs.EmptyToken
|
||||||
|
}
|
||||||
data, err := xc.Common.Request(url, method, func(req *resty.Request) {
|
data, err := xc.Common.Request(url, method, func(req *resty.Request) {
|
||||||
req.SetHeaders(map[string]string{
|
req.SetHeaders(map[string]string{
|
||||||
"Authorization": xc.Token(),
|
"Authorization": xc.Token(),
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package thunder
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"net/http"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/OpenListTeam/OpenList/v4/internal/errs"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestRequestReturnsErrorWhenTokenIsMissing(t *testing.T) {
|
||||||
|
xc := &XunLeiCommon{}
|
||||||
|
|
||||||
|
_, err := xc.Request(API_URL+"/about", http.MethodGet, nil, nil)
|
||||||
|
if !errors.Is(err, errs.EmptyToken) {
|
||||||
|
t.Fatalf("expected EmptyToken, got %v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -12,6 +12,7 @@ import (
|
|||||||
|
|
||||||
"github.com/OpenListTeam/OpenList/v4/drivers/base"
|
"github.com/OpenListTeam/OpenList/v4/drivers/base"
|
||||||
"github.com/OpenListTeam/OpenList/v4/internal/driver"
|
"github.com/OpenListTeam/OpenList/v4/internal/driver"
|
||||||
|
"github.com/OpenListTeam/OpenList/v4/internal/errs"
|
||||||
"github.com/OpenListTeam/OpenList/v4/internal/model"
|
"github.com/OpenListTeam/OpenList/v4/internal/model"
|
||||||
"github.com/OpenListTeam/OpenList/v4/internal/op"
|
"github.com/OpenListTeam/OpenList/v4/internal/op"
|
||||||
streamPkg "github.com/OpenListTeam/OpenList/v4/internal/stream"
|
streamPkg "github.com/OpenListTeam/OpenList/v4/internal/stream"
|
||||||
@@ -87,6 +88,9 @@ func (x *ThunderBrowser) Init(ctx context.Context) (err error) {
|
|||||||
// 清空 信任密钥
|
// 清空 信任密钥
|
||||||
x.Addition.CreditKey = ""
|
x.Addition.CreditKey = ""
|
||||||
}
|
}
|
||||||
|
if token == nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
x.SetTokenResp(token)
|
x.SetTokenResp(token)
|
||||||
return err
|
return err
|
||||||
},
|
},
|
||||||
@@ -639,6 +643,9 @@ func (xc *XunLeiBrowserCommon) SetSpaceTokenResp(spaceToken string) {
|
|||||||
|
|
||||||
// Request 携带Authorization和CaptchaToken的请求
|
// Request 携带Authorization和CaptchaToken的请求
|
||||||
func (xc *XunLeiBrowserCommon) Request(url string, method string, callback base.ReqCallback, resp interface{}) ([]byte, error) {
|
func (xc *XunLeiBrowserCommon) Request(url string, method string, callback base.ReqCallback, resp interface{}) ([]byte, error) {
|
||||||
|
if xc.TokenResp == nil {
|
||||||
|
return nil, errs.EmptyToken
|
||||||
|
}
|
||||||
data, err := xc.Common.Request(url, method, func(req *resty.Request) {
|
data, err := xc.Common.Request(url, method, func(req *resty.Request) {
|
||||||
req.SetHeaders(map[string]string{
|
req.SetHeaders(map[string]string{
|
||||||
"Authorization": xc.GetToken(),
|
"Authorization": xc.GetToken(),
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package thunder_browser
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"net/http"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/OpenListTeam/OpenList/v4/internal/errs"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestRequestReturnsErrorWhenTokenIsMissing(t *testing.T) {
|
||||||
|
xc := &XunLeiBrowserCommon{}
|
||||||
|
|
||||||
|
_, err := xc.Request(API_URL+"/about", http.MethodGet, nil, nil)
|
||||||
|
if !errors.Is(err, errs.EmptyToken) {
|
||||||
|
t.Fatalf("expected EmptyToken, got %v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -69,13 +69,16 @@ func (x *ThunderX) Init(ctx context.Context) (err error) {
|
|||||||
token, err = x.Login(x.Username, x.Password)
|
token, err = x.Login(x.Username, x.Password)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
x.GetStorage().SetStatus(fmt.Sprintf("%+v", err.Error()))
|
x.GetStorage().SetStatus(fmt.Sprintf("%+v", err.Error()))
|
||||||
if token.UserID != "" {
|
if token != nil && token.UserID != "" {
|
||||||
x.SetUserID(token.UserID)
|
x.SetUserID(token.UserID)
|
||||||
x.UserAgent = BuildCustomUserAgent(utils.GetMD5EncodeStr(x.Username+x.Password), ClientID, PackageName, SdkVersion, ClientVersion, PackageName, token.UserID)
|
x.UserAgent = BuildCustomUserAgent(utils.GetMD5EncodeStr(x.Username+x.Password), ClientID, PackageName, SdkVersion, ClientVersion, PackageName, token.UserID)
|
||||||
}
|
}
|
||||||
op.MustSaveDriverStorage(x)
|
op.MustSaveDriverStorage(x)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if token == nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
x.SetTokenResp(token)
|
x.SetTokenResp(token)
|
||||||
return err
|
return err
|
||||||
},
|
},
|
||||||
@@ -496,6 +499,9 @@ func (xc *XunLeiXCommon) SetTokenResp(tr *TokenResp) {
|
|||||||
|
|
||||||
// Request 携带Authorization和CaptchaToken的请求
|
// Request 携带Authorization和CaptchaToken的请求
|
||||||
func (xc *XunLeiXCommon) Request(url string, method string, callback base.ReqCallback, resp interface{}) ([]byte, error) {
|
func (xc *XunLeiXCommon) Request(url string, method string, callback base.ReqCallback, resp interface{}) ([]byte, error) {
|
||||||
|
if xc.TokenResp == nil {
|
||||||
|
return nil, errs.EmptyToken
|
||||||
|
}
|
||||||
data, err := xc.Common.Request(url, method, func(req *resty.Request) {
|
data, err := xc.Common.Request(url, method, func(req *resty.Request) {
|
||||||
req.SetHeaders(map[string]string{
|
req.SetHeaders(map[string]string{
|
||||||
"Authorization": xc.Token(),
|
"Authorization": xc.Token(),
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package thunderx
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"net/http"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/OpenListTeam/OpenList/v4/internal/errs"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestRequestReturnsErrorWhenTokenIsMissing(t *testing.T) {
|
||||||
|
xc := &XunLeiXCommon{}
|
||||||
|
|
||||||
|
_, err := xc.Request(API_URL+"/about", http.MethodGet, nil, nil)
|
||||||
|
if !errors.Is(err, errs.EmptyToken) {
|
||||||
|
t.Fatalf("expected EmptyToken, got %v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user