GUIDE

使用说明

从部署网关、配置微信开放平台,到业务站点接入与上线检查。 按下面的顺序操作,一个回调域就能承接所有站点的微信扫码登录。

ThinkPHP 8 PHP 8.1+ SQLite OAuth 2.0

1. 产品概览

微信开放平台的「授权回调域」只能填写一个域名。当你有多个业务站点(例如 wx.is3.cn、www.example.com)都需要微信扫码登录时, 每个站点单独申请网站应用既麻烦,也无法共用用户体系。

本网关把微信 OAuth 流程收敛到一个固定域名上:业务站点只负责跳转和换票, 微信只认识网关这一个回调域,用户资料则由业务后端凭密钥安全获取。

一个回调域 微信后台只需配置网关域名,新增业务站不用再改微信配置。
统一用户标识 同一开放平台下返回一致的 unionid,跨站点识别同一个人。
一次性 ticket 浏览器只拿到短效票据,openid 等资料由后端接口换取。
完整日志 项目、openid / unionid、昵称、IP、时间全部留痕。
01
业务站点发起

生成 state,302 到网关 /oauth/authorize。

02
网关校验

校验 client_id、项目状态与回调域名白名单,跳转微信扫码页。

03
微信回调网关

网关用 code 换取用户资料并记录日志,生成一次性 ticket。

04
业务后端换票

浏览器带 ticket 回到业务站,后端调 /api/user/info 换取用户。

2. 微信平台准备

  1. 登录 微信开放平台(open.weixin.qq.com),进入「管理中心 → 网站应用」。
  2. 创建或打开一个已通过审核的网站应用,记录 AppID 与 AppSecret。
  3. 在「授权回调域」中填写网关域名,例如 login.fps5.cn。
  4. 确认该网站应用已绑定开放平台账号,否则可能拿不到 unionid。
只填域名,不填路径。 授权回调域填写 login.fps5.cn 即可,不要写 https://、 不要带端口和 /oauth/callback。微信侧的实际回调地址由网关自动拼接。
上线前必须使用 HTTPS。 微信网页授权要求回调域与访问域名一致,生产环境请配置好证书,并保证 https://你的网关域名 可以正常访问。

3. 部署网关

3.1 环境要求

项目要求
PHP8.1 及以上(推荐 8.2)
扩展pdo_sqlite、curl、mbstring、openssl
Web 服务器Nginx / Apache,站点根目录指向 public/
可写目录database/(SQLite 文件)、runtime/
数据库无需安装,首次访问自动创建 SQLite 表结构

3.2 上传与伪静态

把项目上传到服务器,将网站运行目录设置为 public。Nginx 伪静态参考:

nginx.conf
location / {
    try_files $uri $uri/ /index.php?$query_string;
}

location ~ \.php$ {
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

Apache 环境已自带 public/.htaccess,确认 mod_rewrite 已开启即可。 首次部署后请给 database/ 与 runtime/ 写权限。

4. 初始化与系统设置

  1. 浏览器访问 https://login.fps5.cn/admin/init,创建管理员账号与密码。
  2. 使用管理员账号登录 https://login.fps5.cn/admin。
  3. 进入「系统设置」,填写微信 AppID、AppSecret。
  4. 填写「网关地址」,例如 https://login.fps5.cn,保存后所有跳转都会使用该地址。
  5. 设置 ticket 有效期(默认 300 秒,建议 120–600 秒)。
  6. 生产环境务必关闭模拟模式,保存设置。
设置项说明
微信 AppID开放平台网站应用的 AppID,用于拼接扫码授权地址。
微信 AppSecret仅保存在服务端,用于向微信换取 access_token,切勿泄露。
网关地址对外访问根地址,如 https://login.fps5.cn,末尾不要带 /。
ticket 有效期业务方换取用户资料的时限,超时或使用一次后立即失效。
模拟模式开启后不调用微信接口,生成本地模拟用户,仅用于本地联调。
安全建议:AppSecret 只填在网关后台,不要写进任何前端代码或公开仓库; 管理员密码请使用强密码,并定期更换。

5. 创建接入项目

普通用户:微信扫码登录后进入「用户后台 → 我的项目 → 申请项目」,填写项目名称、允许域名、默认回调地址并提交,等待管理员审核。

管理员:可进入「管理员后台 → 项目管理」直接新增项目,或对用户提交的项目执行「通过 / 拒绝 / 停用 / 删除」。

审核规则:新申请的项目默认「待审核」,审核通过后才可以发起授权;用户修改域名或回调地址后会重新进入待审核状态;管理员停用项目或停用用户后,其项目立即无法使用。

一个业务站点对应一个项目,主要字段如下:

字段说明
项目名称便于识别的名称,会显示在授权日志中。
允许域名回调地址的域名白名单,多个用英文逗号分隔,支持 *.example.com 通配。
默认回调地址发起授权时未传 redirect_url 时使用,必须是 http(s) 绝对地址。
审核状态待审核 / 已通过 / 已拒绝,仅「已通过」的项目可用于授权。
状态停用后该项目无法再发起授权,已发出的 ticket 不受影响。

保存后系统会生成一对凭证:

client_id ak_************************

可公开,用于标识项目,出现在跳转地址中。

client_secret sk_****************************************

必须保密,只能保存在业务后端,用于换取用户资料。

允许域名留空表示不限制回调域名,仅建议在本地调试时使用。 生产环境请填写明确的域名或通配域名,防止开放重定向。

6. 业务站接入

业务站只需要两个动作:把用户送到网关,以及在回调里用 ticket 换取用户资料。

6.1 第一步:跳转发起授权

业务站生成随机 state 并保存在 Session,然后 302 到网关:

login.php
// 生成并保存 state,防止 CSRF
session_start();
$state = bin2hex(random_bytes(16));
$_SESSION['wx_state'] = $state;

$query = http_build_query([
    'client_id'    => 'ak_你的client_id',
    'redirect_url' => 'https://wx.is3.cn/callback.php',
    'state'        => $state,
]);

header('Location: https://login.fps5.cn/oauth/authorize?' . $query);
exit;
参数必填说明
client_id是项目凭证中的 client_id。
redirect_url否授权完成后的回跳地址,域名必须在项目白名单内;不传则使用项目默认回调地址。
state建议业务方自定义随机串,网关会原样带回,用于校验请求来源。

6.2 第二步:回调换取用户

微信授权完成后,浏览器会回到你的 redirect_url,并携带 code(一次性 ticket)和 state。 请先校验 state,再由后端调用用户信息接口:

callback.php
$state = $_GET['state'] ?? '';
if (empty($_SESSION['wx_state']) || !hash_equals($_SESSION['wx_state'], $state)) {
    exit('state 校验失败,请重新登录');
}
unset($_SESSION['wx_state']);

$ch = curl_init('https://login.fps5.cn/api/user/info');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_POSTFIELDS     => http_build_query([
        'client_id'     => 'ak_你的client_id',
        'client_secret' => 'sk_你的client_secret',
        'code'          => $_GET['code'] ?? '',
    ]),
]);
$json = json_decode(curl_exec($ch), true);
curl_close($ch);

if (($json['code'] ?? 0) !== 200) {
    exit('登录失败:' . ($json['msg'] ?? '未知错误'));
}

// 建议用 unionid 作为跨站点统一用户标识
$_SESSION['openid']  = $json['data']['openid'];
$_SESSION['unionid'] = $json['data']['unionid'];
$_SESSION['user']    = $json['data'];

header('Location: /index.php');
exit;
ticket 只能使用一次。 重复调用会返回 40003;若用户刷新回调页导致失败,请引导用户重新发起登录。 业务后端拿到用户资料后,请立即建立自己的会话。

6.3 用 unionid 识别同一个人

同一个微信开放平台账号下,不同网站应用返回的 openid 不同,但 unionid 一致。 如果多个业务站需要共享账号体系,请以 unionid 作为主键; 仅单站使用时,使用 openid 即可。

7. 网关用户体系

除了给业务站提供 OAuth 中转,网关自身也内置了微信扫码注册 / 登录: 用户访问 /user/login 扫码,首次自动创建账号,之后直接登录。

地址作用
/user/login发起微信扫码登录;未注册用户自动完成注册。
/register与登录一致,首次扫码即注册。
/user用户中心:资料、openid / unionid、登录统计。
/user/logout退出当前登录态。
  • 用户身份以 openid 为唯一键,重复扫码只更新资料,不会重复建号。
  • 用户数据保存在 gw_users 表,可通过 status 字段停用账号。
  • 用户登录与业务站授权互不影响:用户登录态保存在网关 Session,业务站仍通过 ticket 获取资料。
  • 模拟模式下,用户登录会直接以模拟用户进入用户中心,便于本地验证页面。

8. 上线检查清单

  • 网关域名已启用 HTTPS,证书有效。
  • 微信开放平台「授权回调域」= 网关域名(不带协议与路径)。
  • 后台已填写 AppID / AppSecret,且 模拟模式已关闭。
  • 网关地址与真实访问地址完全一致(协议、域名均一致)。
  • 每个业务项目都配置了明确的允许域名,未留空。
  • client_secret 只存在于业务后端,未出现在前端或仓库中。
  • 业务回调已校验 state,并在失败时给出重新登录入口。
  • database/ 已纳入备份,SQLite 文件不会随发布被覆盖。
  • 已用真实微信完整走通一次:扫码 → 回调 → 换取用户 → 建立会话。

9. 常见问题

微信提示「redirect_uri 参数错误」怎么办?

说明微信后台的授权回调域与网关实际域名不一致。请确认回调域只填域名 (如 login.fps5.cn),且网关地址使用同一域名与协议。

跳转网关后提示 redirect_url 不合法?

回调地址必须是 http(s) 绝对地址,且主机名在项目的「允许域名」内。 支持 *.example.com 通配;留空的项目表示不限制。

换票返回 40003 是什么原因?

ticket 无效、已过期或已被使用。ticket 默认 300 秒且仅能消费一次, 请让用户重新发起登录,不要重复提交同一个 code。

返回的 unionid 为空?

通常是网站应用未绑定微信开放平台账号,或授权时未满足 unionid 的返回条件。 请在开放平台确认应用归属,并重新扫码测试。

用户昵称为空或头像缺失?

网关在拉取用户资料失败时会降级使用 token 中的基础信息,保证登录可用。 可在后台授权日志中核对记录,必要时让用户重新扫码。

SQLite 能支撑多少用户?

SQLite 适合中小流量与内部系统,读多写少的登录场景足够。 如果并发写入很高,可将数据库切换为 MySQL,业务代码使用 ThinkPHP Db 门面,迁移成本较低。

如何本地联调而不调用微信?

在后台「系统设置」开启模拟模式,网关会跳过微信接口并生成模拟用户。 本地验证完成后请务必关闭,避免线上产生假用户。

下一步:查看接口细节

参数、返回结构、错误码与多语言调用示例。

阅读 API 文档
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-10-17 15:39:04 HTTP/2.0 GET : https://login.fps5.cn/docs
  2. 运行时间 : 0.019146s [ 吞吐率:52.23req/s ] 内存消耗:269.32kb 文件加载:146
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=3553c8300db0cd445a3308b19f37900e
  1. /www/wwwroot/login.fps5.cn/public/index.php ( 0.79 KB )
  2. /www/wwwroot/login.fps5.cn/vendor/autoload.php ( 0.73 KB )
  3. /www/wwwroot/login.fps5.cn/vendor/composer/autoload_real.php ( 1.63 KB )
  4. /www/wwwroot/login.fps5.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /www/wwwroot/login.fps5.cn/vendor/composer/ClassLoader.php ( 15.99 KB )
  6. /www/wwwroot/login.fps5.cn/vendor/composer/autoload_static.php ( 4.73 KB )
  7. /www/wwwroot/login.fps5.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /www/wwwroot/login.fps5.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /www/wwwroot/login.fps5.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /www/wwwroot/login.fps5.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /www/wwwroot/login.fps5.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 0.35 KB )
  15. /www/wwwroot/login.fps5.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.81 KB )
  16. /www/wwwroot/login.fps5.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.60 KB )
  17. /www/wwwroot/login.fps5.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /www/wwwroot/login.fps5.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.23 KB )
  19. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /www/wwwroot/login.fps5.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /www/wwwroot/login.fps5.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /www/wwwroot/login.fps5.cn/app/provider.php ( 0.19 KB )
  23. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/Http.php ( 6.22 KB )
  24. /www/wwwroot/login.fps5.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /www/wwwroot/login.fps5.cn/app/common.php ( 6.86 KB )
  27. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/helper.php ( 18.77 KB )
  28. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/Config.php ( 5.93 KB )
  29. /www/wwwroot/login.fps5.cn/config/app.php ( 0.95 KB )
  30. /www/wwwroot/login.fps5.cn/config/cache.php ( 0.78 KB )
  31. /www/wwwroot/login.fps5.cn/config/console.php ( 0.23 KB )
  32. /www/wwwroot/login.fps5.cn/config/cookie.php ( 0.70 KB )
  33. /www/wwwroot/login.fps5.cn/config/database.php ( 2.10 KB )
  34. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /www/wwwroot/login.fps5.cn/config/filesystem.php ( 0.61 KB )
  36. /www/wwwroot/login.fps5.cn/config/gateway.php ( 1.96 KB )
  37. /www/wwwroot/login.fps5.cn/config/lang.php ( 0.91 KB )
  38. /www/wwwroot/login.fps5.cn/config/log.php ( 1.35 KB )
  39. /www/wwwroot/login.fps5.cn/config/middleware.php ( 0.19 KB )
  40. /www/wwwroot/login.fps5.cn/config/route.php ( 1.88 KB )
  41. /www/wwwroot/login.fps5.cn/config/session.php ( 0.57 KB )
  42. /www/wwwroot/login.fps5.cn/config/trace.php ( 0.34 KB )
  43. /www/wwwroot/login.fps5.cn/config/view.php ( 0.82 KB )
  44. /www/wwwroot/login.fps5.cn/app/event.php ( 0.25 KB )
  45. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/Event.php ( 7.77 KB )
  46. /www/wwwroot/login.fps5.cn/app/service.php ( 0.13 KB )
  47. /www/wwwroot/login.fps5.cn/app/AppService.php ( 9.06 KB )
  48. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  49. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  50. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  51. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  52. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  53. /www/wwwroot/login.fps5.cn/vendor/services.php ( 0.15 KB )
  54. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  55. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  56. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  57. /www/wwwroot/login.fps5.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  58. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  59. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  60. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  61. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  62. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  63. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  64. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  65. /www/wwwroot/login.fps5.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  66. /www/wwwroot/login.fps5.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  67. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  68. /www/wwwroot/login.fps5.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  69. /www/wwwroot/login.fps5.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 17.45 KB )
  70. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  71. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.02 KB )
  72. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  73. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/db/connector/Sqlite.php ( 3.02 KB )
  74. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 53.74 KB )
  75. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  76. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  77. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/db/builder/Sqlite.php ( 2.97 KB )
  78. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.07 KB )
  79. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  80. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 6.10 KB )
  81. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  82. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  83. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  84. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  85. /www/wwwroot/login.fps5.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  86. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  87. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  88. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.20 KB )
  89. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.75 KB )
  90. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  91. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  92. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.30 KB )
  93. /www/wwwroot/login.fps5.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  94. /www/wwwroot/login.fps5.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  95. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  96. /www/wwwroot/login.fps5.cn/app/Request.php ( 0.09 KB )
  97. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/Request.php ( 54.64 KB )
  98. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/traits/UrlHandler.php ( 6.05 KB )
  99. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/traits/DomainHandler.php ( 5.49 KB )
  100. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/traits/HttpMethodHandler.php ( 4.74 KB )
  101. /www/wwwroot/login.fps5.cn/app/middleware.php ( 0.26 KB )
  102. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  103. /www/wwwroot/login.fps5.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  104. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  105. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  106. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  107. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  108. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  109. /www/wwwroot/login.fps5.cn/app/middleware/VerifyCsrf.php ( 2.67 KB )
  110. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/facade/Session.php ( 1.79 KB )
  111. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  112. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.74 KB )
  113. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  114. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.41 KB )
  115. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/route/Rule.php ( 27.49 KB )
  116. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  117. /www/wwwroot/login.fps5.cn/route/app.php ( 2.60 KB )
  118. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  119. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  120. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 11.32 KB )
  121. /www/wwwroot/login.fps5.cn/app/controller/Home.php ( 1.08 KB )
  122. /www/wwwroot/login.fps5.cn/app/BaseController.php ( 2.05 KB )
  123. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  124. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/facade/Config.php ( 1.37 KB )
  125. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.97 KB )
  126. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  127. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  128. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  129. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  130. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  131. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  132. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  133. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  134. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  135. /www/wwwroot/login.fps5.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  136. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  137. /www/wwwroot/login.fps5.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  138. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  139. /www/wwwroot/login.fps5.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  140. /www/wwwroot/login.fps5.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  141. /www/wwwroot/login.fps5.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  142. /www/wwwroot/login.fps5.cn/runtime/temp/c4d0dc8f9b0fd01807c7dc0e80957894.php ( 28.27 KB )
  143. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/Response.php ( 9.07 KB )
  144. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/response/Html.php ( 0.97 KB )
  145. /www/wwwroot/login.fps5.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  146. /www/wwwroot/login.fps5.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000288s ] sqlite:/www/wwwroot/login.fps5.cn/database/weblogin.db
  2. PRAGMA journal_mode=WAL [ RunTime:0.000673s ]
  3. PRAGMA busy_timeout=5000 [ RunTime:0.000008s ]
  4. PRAGMA synchronous=NORMAL [ RunTime:0.000007s ]
  5. PRAGMA table_info( 'settings' ) [ RunTime:0.000035s ]
  6. SELECT * FROM `settings` WHERE `name` = 'gateway_url' LIMIT 1 [ RunTime:0.000152s ]
0.023419s