mirror of
https://github.com/yhl452493373/frps-panel.git
synced 2026-04-04 06:16:59 +08:00
success write tokens to config with toml (not finish)
This commit is contained in:
@@ -422,6 +422,9 @@ var loadUserList = (function ($) {
|
||||
*/
|
||||
function add(data, index) {
|
||||
var loading = layui.layer.load();
|
||||
data.ports = data.ports.split(',')
|
||||
data.domains = data.domains.split(',')
|
||||
data.subdomains = data.subdomains.split(',')
|
||||
$.ajax({
|
||||
url: '/add',
|
||||
type: 'post',
|
||||
|
||||
@@ -111,15 +111,9 @@ func parseConfigFile(configFile, tokensFile string) (controller.HandleController
|
||||
}
|
||||
}
|
||||
|
||||
tokens := make(map[string]controller.TokenInfo)
|
||||
|
||||
for _, token := range config.Tokens {
|
||||
tokens[token.User] = token
|
||||
}
|
||||
|
||||
return controller.HandleController{
|
||||
CommonInfo: config.Common,
|
||||
Tokens: tokens,
|
||||
Tokens: config.Tokens.Tokens,
|
||||
Version: version,
|
||||
ConfigFile: configFile,
|
||||
TokensFile: tokensFile,
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
# frps panel config info
|
||||
plugin_addr = "127.0.0.1" #aadr
|
||||
plugin_port = 7200
|
||||
admin_user = "admin"
|
||||
admin_pwd = "admin"
|
||||
#admin_user = "admin"
|
||||
#admin_pwd = "admin"
|
||||
# specified login state keep time
|
||||
admin_keep_time = 0
|
||||
|
||||
|
||||
@@ -1,18 +1,17 @@
|
||||
# token info
|
||||
[[tokens]]
|
||||
user = "user1"
|
||||
token = "token1"
|
||||
comment = "张三"
|
||||
ports = ["1", "2", "3", "10-100"]
|
||||
domains = ["aaa.com", "bbb.com"]
|
||||
subdomains = ["a.com", "b.com"]
|
||||
status = true
|
||||
|
||||
[[tokens]]
|
||||
user = "user2"
|
||||
token = "token2"
|
||||
comment = "李四"
|
||||
ports = ["11", "22", "33", "110-200"]
|
||||
domains = ["ccc.com", "ddd.com"]
|
||||
subdomains = ["c.com", "d.com"]
|
||||
status = true
|
||||
[tokens]
|
||||
[tokens.user1]
|
||||
user = "user1"
|
||||
token = "token1"
|
||||
comment = "张三"
|
||||
ports = ["1", "2", "3", "10-100"]
|
||||
domains = ["aaa.com", "bbb.com"]
|
||||
subdomains = ["a", "b"]
|
||||
status = true
|
||||
[tokens.user2]
|
||||
user = "user2"
|
||||
token = "token2"
|
||||
comment = "李四"
|
||||
ports = ["11", "22", "33", "110-200"]
|
||||
domains = ["ccc.com", "ddd.com"]
|
||||
subdomains = ["c", "d"]
|
||||
status = true
|
||||
|
||||
3
go.mod
3
go.mod
@@ -8,9 +8,9 @@ require (
|
||||
github.com/gin-contrib/i18n v1.0.0
|
||||
github.com/gin-contrib/sessions v0.0.5
|
||||
github.com/gin-gonic/gin v1.9.1
|
||||
github.com/pelletier/go-toml/v2 v2.0.9
|
||||
github.com/spf13/cobra v0.0.3
|
||||
golang.org/x/text v0.11.0
|
||||
gopkg.in/ini.v1 v1.67.0
|
||||
)
|
||||
|
||||
require (
|
||||
@@ -36,7 +36,6 @@ require (
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||
github.com/modern-go/reflect2 v1.0.2 // indirect
|
||||
github.com/nicksnyder/go-i18n/v2 v2.2.1 // indirect
|
||||
github.com/pelletier/go-toml/v2 v2.0.9 // indirect
|
||||
github.com/spf13/pflag v1.0.5 // indirect
|
||||
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
|
||||
github.com/ugorji/go/codec v1.2.11 // indirect
|
||||
|
||||
2
go.sum
2
go.sum
@@ -301,8 +301,6 @@ gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogR
|
||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
|
||||
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
|
||||
gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
|
||||
gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||
gopkg.in/square/go-jose.v2 v2.4.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
|
||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
|
||||
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
|
||||
@@ -355,11 +355,14 @@ func (c *HandleController) MakeAddTokenFunc() func(context *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
c.Tokens[info.User] = info
|
||||
|
||||
tokenFile, err := os.Create(c.TokensFile)
|
||||
if err != nil {
|
||||
log.Printf("error to crate file %v: %v", c.TokensFile, err)
|
||||
}
|
||||
if err = toml.NewEncoder(tokenFile).Encode(c.Tokens); err != nil {
|
||||
|
||||
if err = toml.NewEncoder(tokenFile).Encode(c.TokensList()); err != nil {
|
||||
log.Printf("error to encode tokens: %v", err)
|
||||
}
|
||||
if err = tokenFile.Close(); err != nil {
|
||||
|
||||
@@ -39,7 +39,7 @@ type HTTPError struct {
|
||||
|
||||
type Config struct {
|
||||
Common CommonInfo
|
||||
Tokens []TokenInfo
|
||||
Tokens
|
||||
}
|
||||
|
||||
type CommonInfo struct {
|
||||
@@ -58,6 +58,10 @@ type CommonInfo struct {
|
||||
DashboardTls bool
|
||||
}
|
||||
|
||||
type Tokens struct {
|
||||
Tokens map[string]TokenInfo `toml:"tokens"`
|
||||
}
|
||||
|
||||
type TokenInfo struct {
|
||||
User string `toml:"user" json:"user" form:"user"`
|
||||
Token string `toml:"token" json:"token" form:"token"`
|
||||
@@ -112,3 +116,9 @@ type TokenEnable struct {
|
||||
func (e *HTTPError) Error() string {
|
||||
return e.Err.Error()
|
||||
}
|
||||
|
||||
func (c *HandleController) TokensList() Tokens {
|
||||
return Tokens{
|
||||
c.Tokens,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user