Просмотр исходного кода

feat(api): Add api token expire

Resolves #109
lejianwen 1 год назад
Родитель
Сommit
d9fcfdde6a
5 измененных файлов с 6 добавлено и 2 удалено
  1. 1 0
      README.md
  2. 1 0
      README_EN.md
  3. 1 0
      conf/config.yaml
  4. 1 0
      config/config.go
  5. 2 2
      service/user.go

+ 1 - 0
README.md

@@ -193,6 +193,7 @@ jwt:
193 193
 | RUSTDESK_API_APP_WEB_CLIENT                       | 是否启用web-client; 1:启用,0:不启用; 默认启用                        | 1                            |
194 194
 | RUSTDESK_API_APP_REGISTER                         | 是否开启注册; `true`, `false`  默认`false`                      | `false`                      |
195 195
 | RUSTDESK_API_APP_SHOW_SWAGGER                     | 是否可见swagger文档;`1`显示,`0`不显示,默认`0`不显示                     | `1`                          |
196
+| RUSTDESK_API_APP_TOKEN_EXPIRE                     | token有效时长(秒)                                            | `3600`                       |
196 197
 | -----ADMIN配置-----                                 | ----------                                              | ----------                   |
197 198
 | RUSTDESK_API_ADMIN_TITLE                          | 后台标题                                                    | `RustDesk Api Admin`         |
198 199
 | RUSTDESK_API_ADMIN_HELLO                          | 后台欢迎语,可以使用`html`                                        |                              |

+ 1 - 0
README_EN.md

@@ -194,6 +194,7 @@ The prefix for variable names is `RUSTDESK_API`. If environment variables exist,
194 194
 | RUSTDESK_API_APP_WEB_CLIENT                       | web client on/off; 1: on, 0 off, default: 1                                                                  | 1                             |
195 195
 | RUSTDESK_API_APP_REGISTER                         | register enable; `true`, `false`; default:`false`                                                            | `false`                       |
196 196
 | RUSTDESK_API_APP_SHOW_SWAGGER                     | swagger visible; 1: yes, 0: no; default: 0                                                                   | `0`                           |
197
+| RUSTDESK_API_APP_TOKEN_EXPIRE                     | token expire duration(second)                                                                                | `3600`                        |
197 198
 | ----- ADMIN Configuration-----                    | ----------                                                                                                   | ----------                    |
198 199
 | RUSTDESK_API_ADMIN_TITLE                          | Admin Title                                                                                                  | `RustDesk Api Admin`          |
199 200
 | RUSTDESK_API_ADMIN_HELLO                          | Admin welcome message, you can use `html`                                                                    |                               |

+ 1 - 0
conf/config.yaml

@@ -3,6 +3,7 @@ app:
3 3
   web-client: 1  # 1:启用 0:禁用
4 4
   register: false #是否开启注册
5 5
   show-swagger: 0 # 1:启用 0:禁用
6
+  token-expire: 360000
6 7
 admin:
7 8
   title: "RustDesk Api Admin"
8 9
   hello-file: "./conf/admin/hello.html"  #优先使用file

+ 1 - 0
config/config.go

@@ -17,6 +17,7 @@ type App struct {
17 17
 	WebClient   int  `mapstructure:"web-client"`
18 18
 	Register    bool `mapstructure:"register"`
19 19
 	ShowSwagger int  `mapstructure:"show-swagger"`
20
+	TokenExpire int  `mapstructure:"token-expire"`
20 21
 }
21 22
 type Admin struct {
22 23
 	Title     string `mapstructure:"title"`

+ 2 - 2
service/user.go

@@ -82,7 +82,7 @@ func (us *UserService) Login(u *model.User, llog *model.LoginLog) *model.UserTok
82 82
 		Token:      token,
83 83
 		DeviceUuid: llog.Uuid,
84 84
 		DeviceId:   llog.DeviceId,
85
-		ExpiredAt:  time.Now().Add(time.Hour * 24 * 7).Unix(),
85
+		ExpiredAt:  time.Now().Add(time.Second * time.Duration(global.Config.App.TokenExpire)).Unix(),
86 86
 	}
87 87
 	global.DB.Create(ut)
88 88
 	llog.UserTokenId = ut.UserId
@@ -452,7 +452,7 @@ func (us *UserService) getAdminUserCount() int64 {
452 452
 }
453 453
 
454 454
 func (us *UserService) RefreshAccessToken(ut *model.UserToken) {
455
-	ut.ExpiredAt = time.Now().Add(time.Hour * 24 * 7).Unix()
455
+	ut.ExpiredAt = time.Now().Add(time.Second * time.Duration(global.Config.App.TokenExpire)).Unix()
456 456
 	global.DB.Model(ut).Update("expired_at", ut.ExpiredAt)
457 457
 }
458 458
 func (us *UserService) AutoRefreshAccessToken(ut *model.UserToken) {