SpeedTest-EX 0.0.7 发布, 加入鉴权功能

我们于 0.0.7 内加入了基于Session的鉴权功能,现在你可以在配置文件中开启或关闭该功能。

CHANGLOG (更新日志)

  • ADD: 加入鉴权功能与对应的前端页面, 同时对核心speedtest.jsspeedtest_worker.js内请求后端的部分进行了适应性修改 (实验性, 需要更多测试)
  • CHANGE: 改进前端静态文件处理, 进行一定改进
  • CHANGE: 优化前端显示
  • CHANGE: 改进revping功能, 加入熔断, 若由于timeoutrevping-not-online导致的无法返回结果, 在连续失败后会停止发起请求, 避免阻塞
  • CHANGE: 对route.go进行了优化, 独立部分处理逻辑

项目相关

感谢各位对本项目的支持! 我们也期待您的反馈与建议!

鉴权功能

鉴权功能是本次更新的重点, 我们为SpeedTest-EX加入了基于Session的鉴权功能, 这可以避免服务器资源被滥用消耗.

以下是/login路径的前端页面:

login.png

鉴权逻辑总览:

auth.png

开启鉴权功能

在配置文件中, 你需要将[auth]配置块中的enable选项设置为true, 并设置secret选项为一个随机字符串(这非常重要, 这个字符串将作为加密session的密钥).

[auth]
enable = true # 是否开启鉴权
username = "admin" # 鉴权用户名 请务必修改
password = "password" # 鉴权密码 请务必修改
secret = "secret" # 加密密钥, 用于生产session cookie, 请务必修改

其余更新

RevPing功能优化

我们在原有的基础上进行了优化, 在多次因TimeoutRevPing-Not-Online这两种错误导致无法返回有效结果的场景下, 此版本会进行一些处理

在前端收到RevPing-Not-OnlineTimeout错误时, 会向错误计数器+1, 当错误计数达到5次时, 前端会停止发起请求, 避免阻塞其他HTTP请求.

前端优化&Route.go优化

我们对内嵌前端所使用的以embedFS为基础的HTTPFS进行了读取操作的一些优化与改进

同时, 我们加入了一些路由处理, 使得前端可以正确的处理请求, 如/login页面的请求与/login.html等效

前端演示

SpeedTest-EX Index Page

SpeedTest-EX Chart Page

结语

SpeedTest-EX 仍在不断进步, 目前核心功能基本已无问题, 额外的鉴权功能也已加入, 后续我们将继续优化与完善功能, 也欢迎各位开发者共同参与进来!

如果 本项目 对您有所帮助, 请给项目一个Star! 您的支持是我们前进的动力!

本文使用CC BY-NC-SA 4.0许可发布