基础资料

Fresns 主程序是基于 PHP Laravel 8 框架和 MySQL 数据库而开发的社交网络服务软件,开发扩展插件需要了解以下技术基础资料。

参考文档

目录结构

fresns/         //主程序根目录
├── app/            //核心代码目录
│   ├── Console/        //控制类
│   ├── Exceptions/     //异常类
│   ├── Helpers/        //辅助类
│   ├── Listeners/      //监听类
│   ├── Models/         //模型类
│   ├── Http/           //旧业务功能目录(待迁移)
│   ├── Fresns/         //业务功能
│   │   ├── Panel/          //控制面板
│   │   ├── CmdWords/       //命令字
│   │   └── Api/            //社区 API
│   └── Providers/      //服务提供者
├── bootstrap/      //引导程序目录
├── config/         //配置文件目录
├── database/       //数据文件目录
├── plugins/        //插件目录
├── themes/         //主题目录
├── public/         //网站根目录
│   ├── assets/         //扩展静态文件
│   ├── static/         //内置静态文件
│   ├── index.php       //网站入口文件
│   ├── favicon.ico     //站点 ico 图标
│   └── robots.txt      //Robots 协议
├── resources/      //框架资源目录
│   ├── lang/           //控制面板语言文件
│   └── views/          //控制面板视图文件
├── routes/         //路由文件目录
├── storage/        //框架存储目录
├── tests/          //框架测试目录
├── .env.example    //配置参数文件模板(使用时修改为 .env 文件名)
├── artisan         //框架命令行接口
├── compose.json    //引用库信息
├── server.php      //服务模拟文件
├── package.json    //前端编译用途文件
├── webpack.mix.js  //前端编译用途文件
├── phpunit.xml     //单元测试用途文件
└── LICENSE         //版权文件

插件验证签名

用户将通过 URL 访问插件页面,URL 中会传参签名信息,用于一键登录。

  • 1、先使用 URL Encode 解码 {sign} 变量名的值,得到 base64 加密字符串
  • 2、再使用 base64 解密字符串,形成 key => value 格式的 header 和 sign 数据
  • 3、调用系统内置命令字验证签名 fresns_cmd_verify_sign
  • 4、调用系统命令字验证 Token fresns_cmd_verify_session_token
  • 5、根据签名和 Token 验证结果,插件自行处理自己的逻辑。
  • 补充资料