Skip to content

Commit c96abd2

Browse files
committed
Feat: oauth2 qq
1 parent 1bb24e7 commit c96abd2

File tree

13 files changed

+92
-19
lines changed

13 files changed

+92
-19
lines changed

internal/db/user.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ func WithRole(role model.Role) CreateUserConfig {
1919
}
2020
}
2121

22-
func CreateUser(username string, p provider.OAuth2Provider, puid uint, conf ...CreateUserConfig) (*model.User, error) {
22+
func CreateUser(username string, p provider.OAuth2Provider, puid uint64, conf ...CreateUserConfig) (*model.User, error) {
2323
u := &model.User{
2424
Username: username,
2525
Role: model.RoleUser,
@@ -41,7 +41,7 @@ func CreateUser(username string, p provider.OAuth2Provider, puid uint, conf ...C
4141
}
4242

4343
// 只有当provider和puid没有找到对应的user时才会创建
44-
func CreateOrLoadUser(username string, p provider.OAuth2Provider, puid uint, conf ...CreateUserConfig) (*model.User, error) {
44+
func CreateOrLoadUser(username string, p provider.OAuth2Provider, puid uint64, conf ...CreateUserConfig) (*model.User, error) {
4545
var user model.User
4646
var userProvider model.UserProvider
4747

@@ -60,7 +60,7 @@ func CreateOrLoadUser(username string, p provider.OAuth2Provider, puid uint, con
6060
return &user, nil
6161
}
6262

63-
func GetProviderUserID(p provider.OAuth2Provider, puid uint) (string, error) {
63+
func GetProviderUserID(p provider.OAuth2Provider, puid uint64) (string, error) {
6464
var userProvider model.UserProvider
6565
if err := db.Where("provider = ? AND provider_user_id = ?", p, puid).First(&userProvider).Error; err != nil {
6666
if errors.Is(err, gorm.ErrRecordNotFound) {

internal/model/oauth2.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88

99
type UserProvider struct {
1010
Provider provider.OAuth2Provider `gorm:"not null;primarykey"`
11-
ProviderUserID uint `gorm:"not null;primarykey;autoIncrement:false"`
11+
ProviderUserID uint64 `gorm:"not null;primarykey;autoIncrement:false"`
1212
CreatedAt time.Time
1313
UpdatedAt time.Time
1414
UserID string `gorm:"not null;index"`

internal/op/users.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ func GetUserById(id string) (*User, error) {
4343
return u2, userCache.SetWithExpire(id, u2, time.Hour)
4444
}
4545

46-
func CreateUser(username string, p provider.OAuth2Provider, pid uint, conf ...db.CreateUserConfig) (*User, error) {
46+
func CreateUser(username string, p provider.OAuth2Provider, pid uint64, conf ...db.CreateUserConfig) (*User, error) {
4747
if username == "" {
4848
return nil, errors.New("username cannot be empty")
4949
}
@@ -59,7 +59,7 @@ func CreateUser(username string, p provider.OAuth2Provider, pid uint, conf ...db
5959
return u2, userCache.SetWithExpire(u.ID, u2, time.Hour)
6060
}
6161

62-
func CreateOrLoadUser(username string, p provider.OAuth2Provider, pid uint, conf ...db.CreateUserConfig) (*User, error) {
62+
func CreateOrLoadUser(username string, p provider.OAuth2Provider, pid uint64, conf ...db.CreateUserConfig) (*User, error) {
6363
if username == "" {
6464
return nil, errors.New("username cannot be empty")
6565
}
@@ -75,7 +75,7 @@ func CreateOrLoadUser(username string, p provider.OAuth2Provider, pid uint, conf
7575
return u2, userCache.SetWithExpire(u.ID, u2, time.Hour)
7676
}
7777

78-
func GetUserByProvider(p provider.OAuth2Provider, pid uint) (*User, error) {
78+
func GetUserByProvider(p provider.OAuth2Provider, pid uint64) (*User, error) {
7979
uid, err := db.GetProviderUserID(p, pid)
8080
if err != nil {
8181
return nil, err

internal/provider/plugins/client.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,6 @@ func (c *GRPCClient) GetUserInfo(ctx context.Context, tk *oauth2.Token) (*provid
7979
}
8080
return &provider.UserInfo{
8181
Username: resp.Username,
82-
ProviderUserID: uint(resp.ProviderUserId),
82+
ProviderUserID: resp.ProviderUserId,
8383
}, nil
8484
}

internal/provider/plugins/example/example_gitee.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ func (p *GiteeProvider) GetUserInfo(ctx context.Context, tk *oauth2.Token) (*pro
8080
}
8181

8282
type giteeUserInfo struct {
83-
ID uint `json:"id"`
83+
ID uint64 `json:"id"`
8484
Login string `json:"login"`
8585
}
8686

internal/provider/provider.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ type OAuth2Provider string
1010

1111
type UserInfo struct {
1212
Username string
13-
ProviderUserID uint
13+
ProviderUserID uint64
1414
}
1515

1616
type Oauth2Option struct {

internal/provider/providers/baidu-netdisk.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ type baiduNetDiskProviderUserInfo struct {
7171
BaiduName string `json:"baidu_name"`
7272
Errmsg string `json:"errmsg"`
7373
Errno int `json:"errno"`
74-
Uk uint `json:"uk"`
74+
Uk uint64 `json:"uk"`
7575
}
7676

7777
func init() {

internal/provider/providers/baidu.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,11 @@ package providers
33
import (
44
"context"
55
"fmt"
6-
"hash/crc32"
6+
"hash/crc64"
77
"net/http"
88

99
json "github.com/json-iterator/go"
1010
"github.com/synctv-org/synctv/internal/provider"
11-
"github.com/zijiren233/stream"
1211
"golang.org/x/oauth2"
1312
)
1413

@@ -62,7 +61,7 @@ func (p *BaiduProvider) GetUserInfo(ctx context.Context, tk *oauth2.Token) (*pro
6261
}
6362
return &provider.UserInfo{
6463
Username: ui.Uname,
65-
ProviderUserID: uint(crc32.ChecksumIEEE(stream.StringToBytes(ui.Openid))),
64+
ProviderUserID: crc64.Checksum([]byte(ui.Openid), crc64.MakeTable(crc64.ECMA)),
6665
}, nil
6766
}
6867

internal/provider/providers/gitee.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ func (p *GiteeProvider) GetUserInfo(ctx context.Context, tk *oauth2.Token) (*pro
6363
}
6464

6565
type giteeUserInfo struct {
66-
ID uint `json:"id"`
66+
ID uint64 `json:"id"`
6767
Login string `json:"login"`
6868
}
6969

internal/provider/providers/github.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ func (p *GithubProvider) GetUserInfo(ctx context.Context, tk *oauth2.Token) (*pr
6262

6363
type githubUserInfo struct {
6464
Login string `json:"login"`
65-
ID uint `json:"id"`
65+
ID uint64 `json:"id"`
6666
}
6767

6868
func init() {

0 commit comments

Comments
 (0)