mirror of
				https://github.com/linux-do/new-api.git
				synced 2025-11-04 13:23:42 +08:00 
			
		
		
		
	feat: 不自动生成系统访问令牌
This commit is contained in:
		@@ -311,7 +311,7 @@ func GenerateAccessToken(c *gin.Context) {
 | 
			
		||||
		})
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	user.AccessToken = common.GetUUID()
 | 
			
		||||
	user.SetAccessToken(common.GetUUID())
 | 
			
		||||
 | 
			
		||||
	if model.DB.Where("access_token = ?", user.AccessToken).First(user).RowsAffected != 0 {
 | 
			
		||||
		c.JSON(http.StatusOK, gin.H{
 | 
			
		||||
 
 | 
			
		||||
@@ -32,7 +32,7 @@ func createRootAccountIfNeed() error {
 | 
			
		||||
			Role:        common.RoleRootUser,
 | 
			
		||||
			Status:      common.UserStatusEnabled,
 | 
			
		||||
			DisplayName: "Root User",
 | 
			
		||||
			AccessToken: common.GetUUID(),
 | 
			
		||||
			AccessToken: nil,
 | 
			
		||||
			Quota:       100000000,
 | 
			
		||||
		}
 | 
			
		||||
		DB.Create(&rootUser)
 | 
			
		||||
 
 | 
			
		||||
@@ -25,7 +25,7 @@ type User struct {
 | 
			
		||||
	WeChatId         string         `json:"wechat_id" gorm:"column:wechat_id;index"`
 | 
			
		||||
	TelegramId       string         `json:"telegram_id" gorm:"column:telegram_id;index"`
 | 
			
		||||
	VerificationCode string         `json:"verification_code" gorm:"-:all"`                                    // this field is only for Email verification, don't save it to database!
 | 
			
		||||
	AccessToken      string         `json:"access_token" gorm:"type:char(32);column:access_token;uniqueIndex"` // this token is for system management
 | 
			
		||||
	AccessToken      *string        `json:"access_token" gorm:"type:char(32);column:access_token;uniqueIndex"` // this token is for system management
 | 
			
		||||
	Quota            int            `json:"quota" gorm:"type:int;default:0"`
 | 
			
		||||
	UsedQuota        int            `json:"used_quota" gorm:"type:int;default:0;column:used_quota"` // used quota
 | 
			
		||||
	RequestCount     int            `json:"request_count" gorm:"type:int;default:0;"`               // request number
 | 
			
		||||
@@ -38,6 +38,17 @@ type User struct {
 | 
			
		||||
	DeletedAt        gorm.DeletedAt `gorm:"index"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (user *User) GetAccessToken() string {
 | 
			
		||||
	if user.AccessToken == nil {
 | 
			
		||||
		return ""
 | 
			
		||||
	}
 | 
			
		||||
	return *user.AccessToken
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (user *User) SetAccessToken(token string) {
 | 
			
		||||
	user.AccessToken = &token
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// CheckUserExistOrDeleted check if user exist or deleted, if not exist, return false, nil, if deleted or exist, return true, nil
 | 
			
		||||
func CheckUserExistOrDeleted(username string, email string) (bool, error) {
 | 
			
		||||
	var user User
 | 
			
		||||
@@ -201,7 +212,7 @@ func (user *User) Insert(inviterId int) error {
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	user.Quota = common.QuotaForNewUser
 | 
			
		||||
	user.AccessToken = common.GetUUID()
 | 
			
		||||
	//user.SetAccessToken(common.GetUUID())
 | 
			
		||||
	user.AffCode = common.GetRandomString(4)
 | 
			
		||||
	result := DB.Create(user)
 | 
			
		||||
	if result.Error != nil {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user