mirror of
				https://github.com/songquanpeng/one-api.git
				synced 2025-11-04 07:43:41 +08:00 
			
		
		
		
	feat: the format of key is now constant with that of OpenAI
This commit is contained in:
		@@ -5,6 +5,7 @@ import (
 | 
			
		||||
	"github.com/google/uuid"
 | 
			
		||||
	"html/template"
 | 
			
		||||
	"log"
 | 
			
		||||
	"math/rand"
 | 
			
		||||
	"net"
 | 
			
		||||
	"os/exec"
 | 
			
		||||
	"runtime"
 | 
			
		||||
@@ -133,6 +134,29 @@ func GetUUID() string {
 | 
			
		||||
	return code
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const keyChars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
	rand.Seed(time.Now().UnixNano())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func GenerateKey() string {
 | 
			
		||||
	rand.Seed(time.Now().UnixNano())
 | 
			
		||||
	key := make([]byte, 48)
 | 
			
		||||
	for i := 0; i < 16; i++ {
 | 
			
		||||
		key[i] = keyChars[rand.Intn(len(keyChars))]
 | 
			
		||||
	}
 | 
			
		||||
	uuid_ := GetUUID()
 | 
			
		||||
	for i := 0; i < 32; i++ {
 | 
			
		||||
		c := uuid_[i]
 | 
			
		||||
		if i%2 == 0 && c >= 'a' && c <= 'z' {
 | 
			
		||||
			c = c - 'a' + 'A'
 | 
			
		||||
		}
 | 
			
		||||
		key[i+16] = c
 | 
			
		||||
	}
 | 
			
		||||
	return string(key)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func GetTimestamp() int64 {
 | 
			
		||||
	return time.Now().Unix()
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -119,7 +119,7 @@ func AddToken(c *gin.Context) {
 | 
			
		||||
	cleanToken := model.Token{
 | 
			
		||||
		UserId:         c.GetInt("id"),
 | 
			
		||||
		Name:           token.Name,
 | 
			
		||||
		Key:            common.GetUUID(),
 | 
			
		||||
		Key:            common.GenerateKey(),
 | 
			
		||||
		CreatedTime:    common.GetTimestamp(),
 | 
			
		||||
		AccessedTime:   common.GetTimestamp(),
 | 
			
		||||
		ExpiredTime:    token.ExpiredTime,
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ import (
 | 
			
		||||
type Token struct {
 | 
			
		||||
	Id             int    `json:"id"`
 | 
			
		||||
	UserId         int    `json:"user_id"`
 | 
			
		||||
	Key            string `json:"key" gorm:"type:char(32);uniqueIndex"`
 | 
			
		||||
	Key            string `json:"key" gorm:"type:char(48);uniqueIndex"`
 | 
			
		||||
	Status         int    `json:"status" gorm:"default:1"`
 | 
			
		||||
	Name           string `json:"name" gorm:"index" `
 | 
			
		||||
	CreatedTime    int64  `json:"created_time" gorm:"bigint"`
 | 
			
		||||
 
 | 
			
		||||
@@ -238,11 +238,12 @@ const TokensTable = () => {
 | 
			
		||||
                        size={'small'}
 | 
			
		||||
                        positive
 | 
			
		||||
                        onClick={async () => {
 | 
			
		||||
                          if (await copy(token.key)) {
 | 
			
		||||
                          let key = "sk-" + token.key;
 | 
			
		||||
                          if (await copy(key)) {
 | 
			
		||||
                            showSuccess('已复制到剪贴板!');
 | 
			
		||||
                          } else {
 | 
			
		||||
                            showWarning('无法复制到剪贴板,请手动复制,已将令牌填入搜索框。');
 | 
			
		||||
                            setSearchKeyword(token.key);
 | 
			
		||||
                            setSearchKeyword(key);
 | 
			
		||||
                          }
 | 
			
		||||
                        }}
 | 
			
		||||
                      >
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user