8000 fix(pikpak): remove oauth2 method (#7567 close #7545) · AlistGo/alist@fa15c57 · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Commit fa15c57

Browse files
authored
fix(pikpak): remove oauth2 method (#7567 close #7545)
1 parent 2d3605c commit fa15c57

File tree

3 files changed

+13
-83
lines changed

3 files changed

+13
-83
lines changed

drivers/pikpak/driver.go

+3-30
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import (
1212
hash_extend "github.com/alist-org/alist/v3/pkg/utils/hash"
1313
"github.com/go-resty/resty/v2"
1414
log "github.com/sirupsen/logrus"
15-
"golang.org/x/oauth2"
1615
"net/http"
1716
"strconv"
1817
"strings"
@@ -24,7 +23,6 @@ type PikPak struct {
2423
*Common
2524
RefreshToken string
2625
AccessToken string
27-
oauth2Token oauth2.TokenSource
2826
}
2927

3028
func (d *PikPak) Config() driver.Config {
@@ -84,41 +82,16 @@ func (d *PikPak) Init(ctx context.Context) (err error) {
8482
d.Addition.DeviceID = d.Common.DeviceID
8583
op.MustSaveDriverStorage(d)
8684
}
87-
// 初始化 oauth2Config
88-
oauth2Config := &oauth2.Config{
89-
ClientID: d.ClientID,
90-
ClientSecret: d.ClientSecret,
91-
Endpoint: oauth2.Endpoint{
92-
AuthURL: "https://user.mypikpak.net/v1/auth/signin",
93-
TokenURL: "https://user.mypikpak.net/v1/auth/token",
94-
AuthStyle: oauth2.AuthStyleInParams,
95-
},
96-
}
97-
9885
// 如果已经有RefreshToken,直接获取AccessToken
9986
if d.Addition.RefreshToken != "" {
100-
if d.RefreshTokenMethod == "oauth2" {
101-
// 使用 oauth2 刷新令牌
102-
// 初始化 oauth2Token
103-
d.initializeOAuth2Token(ctx, oauth2Config, d.Addition.RefreshToken)
104-
if err := d.refreshTokenByOAuth2(); err != nil {
105-
return err
106-
}
107-
} else {
108-
if err := d.refreshToken(d.Addition.RefreshToken); err != nil {
109-
return err
110-
}
87+
if err = d.refreshToken(d.Addition.RefreshToken); err != nil {
88+
return err
11189
}
112-
11390
} else {
11491
// 如果没有填写RefreshToken,尝试登录 获取 refreshToken
115-
if err := d.login(); err != nil {
92+
if err = d.login(); err != nil {
11693
return err
11794
}
118-
if d.RefreshTokenMethod == "oauth2" {
119-
d.initializeOAuth2Token(ctx, oauth2Config, d.RefreshToken)
120-
}
121-
12295
}
12396

12497
// 获取CaptchaToken

drivers/pikpak/meta.go

+7-8
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,13 @@ import (
77

88
type Addition struct {
99
driver.RootID
10-
Username string `json:"username" required:"true"`
11-
Password string `json:"password" required:"true"`
12-
Platform string `json:"platform" required:"true" default:"web" type:"select" options:"android,web,pc"`
13-
RefreshToken string `json:"refresh_token" required:"true" default:""`
14-
RefreshTokenMethod string `json:"refresh_token_method" required:"true" type:"select" options:"oauth2,http"`
15-
CaptchaToken string `json:"captcha_token" default:""`
16-
DeviceID string `json:"device_id" required:"false" default:""`
17-
DisableMediaLink bool `json:"disable_media_link" default:"true"`
10+
Username string `json:"username" required:"true"`
11+
Password string `json:"password" required:"true"`
12+
Platform string `json:"platform" required:"true" default:"web" type:"select" options:"android,web,pc"`
13+
RefreshToken string `json:"refresh_token" required:"true" default:""`
14+
CaptchaToken string `json:"captcha_token" default:""`
15+
DeviceID string `json:"device_id" required:"false" default:""`
16+
DisableMediaLink bool `json:"disable_media_link" default:"true"`
1817
}
1918

2019
var config = driver.Config{

drivers/pikpak/util.go

+3-45
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package pikpak
22

33
import (
44
"bytes"
5-
"context"
65
"crypto/md5"
76
"crypto/sha1"
87
"encoding/hex"
@@ -14,7 +13,6 @@ import (
1413
"github.com/aliyun/aliyun-oss-go-sdk/oss"
1514
jsoniter "github.com/json-iterator/go"
1615
"github.com/pkg/errors"
17-
"golang.org/x/oauth2"
1816
"io"
1917
"net/http"
2018
"path/filepath"
@@ -27,8 +25,6 @@ import (
2725
"github.com/go-resty/resty/v2"
2826
)
2927

30-
// do others that not defined in Driver interface
31-
3228
var AndroidAlgorithms = []string{
3329
"7xOq4Z8s",
3430
"QE9/9+IQco",
@@ -171,30 +167,6 @@ func (d *PikPak) refreshToken(refreshToken string) error {
171167
return nil
172168
}
173169

174-
func (d *PikPak) initializeOAuth2Token(ctx context.Context, oauth2Config *oauth2.Config, refreshToken string) {
175-
d.oauth2Token = oauth2.ReuseTokenSource(nil, utils.TokenSource(func() (*oauth2.Token, error) {
176-
return oauth2Config.TokenSource(ctx, &oauth2.Token{
177-
RefreshToken: refreshToken,
178-
}).Token()
179-
}))
180-
}
181-
182-
func (d *PikPak) refreshTokenByOAuth2() error {
183-
token, err := d.oauth2Token.Token()
184-
if err != nil {
185-
return err
186-
}
187-
d.Status = "work"
188-
d.RefreshToken = token.RefreshToken
189-
d.AccessToken = token.AccessToken
190-
// 获取用户ID
191-
userID := token.Extra("sub").(string)
192-
d.Common.SetUserID(userID)
193-
d.Addition.RefreshToken = d.RefreshToken
194-
op.MustSaveDriverStorage(d)
195-
return nil
196-
}
197-
198170
func (d *PikPak) request(url string, method string, callback base.ReqCallback, resp interface{}) ([]byte, error) {
199171
req := base.RestyClient.R()
200172
req.SetHeaders(map[string]string{
@@ -203,14 +175,7 @@ func (d *PikPak) request(url string, method string, callback base.ReqCallback, r
203175
"X-Device-ID": d.GetDeviceID(),
204176
"X-Captcha-Token": d.GetCaptchaToken(),
205177
})
206-
if d.RefreshTokenMethod == "oauth2" && d.oauth2Token != nil {
207-
// 使用oauth2 获取 access_token
208-
token, err := d.oauth2Token.Token()
209-
if err != nil {
210-
return nil, err
211-
}
212-
req.SetAuthScheme(token.TokenType).SetAuthToken(token.AccessToken)
213-
} else if d.AccessToken != "" {
178+
if d.AccessToken != "" {
214179
req.SetHeader("Authorization", "Bearer "+d.AccessToken)
215180
}
216181

@@ -232,16 +197,9 @@ func (d *PikPak) request(url string, method string, callback base.ReqCallback, r
232197
return res.Body(), nil
233198
case 4122, 4121, 16:
234199
// access_token 过期
235-
if d.RefreshTokenMethod == "oauth2" {
236-
if err1 := d.refreshTokenByOAuth2(); err1 != nil {
237-
return nil, err1
238-
}
239-
} else {
240-
if err1 := d.refreshToken(d.RefreshToken); err1 != nil {
241-
return nil, err1
242-
}
200+
if err1 := d.refreshToken(d.RefreshToken); err1 != nil {
201+
return nil, err1
243202
}
244-
245203
return d.request(url, method, callback, resp)
246204
case 9: // 验证码token过期
247205
if err = d.RefreshCaptchaTokenAtLogin(GetAction(method, url), d.GetUserID()); err != nil {

0 commit comments

Comments
 (0)
0