[ // 订单 'product_order' => [ 'over_time' => 24*3600,//秒,自动取消时间 // 'over_time' => 3,//秒,自动取消时间 'received_time' => 7*24*3600,//自动确认收货时间 'forbidden_refund_time' => 30*24*3600, //不允许退款时间 'settlement_time' => 0//7*24*3600//订单发货 分账自动结算时间 ], // 处方 'prescription' => [ 'over_time' => 24*3600 //处方审核自动失效时间 // 'over_time' => 0 //处方审核自动失效时间 ], ], /* * JWT 配置(HS256 密钥至少 32 字节,否则 firebase/php-jwt 报 Provided key is too short) */ 'jwt' => [ 'secret' => env('JWT_SECRET', 'nl_admin_jwt_secret_key_change_me_32b'), // token 过期后仍允许续签的宽限期,超过就必须重新登录 'refresh_ttl' => (int) env('JWT_REFRESH_TTL', 7 * 24 * 3600), ], /* * 小程序端 */ 'wx' => [ // 小程序不像浏览器那样会主动续签,token 有效期给长一点,作废靠后台停用账号 'token_ttl' => (int) env('WX_TOKEN_TTL', 30 * 24 * 3600), // 单品牌部署兜底:请求头 X-App-Code 为空时用这个 code 查 nl_wx_app // 双品牌共用进程时仍以表 + 请求头分流为主,这里只是「没带头的默认值」 'default_app_code' => env('WX_DEFAULT_APP_CODE', ''), // 库表无数据时回落用的 AppID(仅公开标识,AppSecret 仍必须从库里加密读) 'env_app_id' => env('WX_APP_ID', ''), // 与 env_app_id 配套的品牌展示名(仅用于日志/默认记录),无业务影响 'env_app_name' => env('WX_APP_NAME', ''), ], /* * 自助注册:后台管理端默认关闭,开着等于谁都能给自己开管理员账号 */ 'register' => [ 'enabled' => (bool) env('REGISTER_ENABLED', false), 'default_role_id' => (int) env('REGISTER_DEFAULT_ROLE_ID', 2), ], /* * 库内敏感字段 AES 密钥(密文前缀 nl_ase_256_,读取兼容历史 ***) * 对应 .env:ENCRYPT_KEY */ 'encrypt_key' => env('ENCRYPT_KEY', ''), /* * 传输层 ase_encode / ase_decode 随机盐长度(与历史 helpers 兼容) */ 'ase_len' => (int) env('ASE_LEN', 30), /* * redis配置 */ 'redis' => [ 'jwt' => 'nl_login_', 'jwt_ttl' => 360000, // 'jwt_ttl' => 360, 'email' => 'nl_email_', 'phone' => 'nl_phone_', 'login_out_key' => 'nl_login_out_', 'menu_key' => 'nl_menu_', // 角色权限码缓存前缀(key = 前缀 + roleId) 'permission_key' => 'nl_perm_', // 公众号 stable access_token 缓存前缀(key = 前缀 + appid,TTL 随微信 expires_in) 'wechat_token' => 'nl_wechat_at_', ], /* * api白名单 */ 'api' => [ /* * 免鉴权路径(不含 /api/ 前缀,中间件规范化后比较) * 这里是「连 token 都不要求」的接口,注册在 routes/api.php 的免登录组里 */ 'white_list' => [ 'login', 'register', 'logout', 'refresh', 'sql/test-connection', 'sql/start-installation', ], /* * 接口级权限 * strict = true 未登记进 nl_api_endpoint 的接口一律拒绝(安全优先,上线前打开) * strict = false 未登记的接口放行,只拦已登记但未授权的(迁移期默认) */ 'permission' => [ 'strict' => (bool) env('API_PERMISSION_STRICT', false), // 登录后人人可调、不参与角色授权的接口 'always_allow' => [ 'admin/codes', 'admin/menu', 'admin/my-info', 'admin/update-profile', 'admin/change-password', 'admin/login-log', 'admin/op-log', 'upload/image', 'upload/video', 'upload/file', ], ], ], /* * 阿里云oss配置 */ 'oss' => [ 'redis_key' => 'nl_oss_url_', 'ali' => [ 'accessKeyId' => env('OSS_ACCESS_KEY_ID'), 'accessKeySecret' => env('OSS_ACCESS_KEY_SECRET'), 'endpoint' => env('OSS_ENDPOINT'), 'bucket' => env('OSS_BUCKET'), 'domain' => env('OSS_DOMAIN'), ], 'qiniu' => [ 'access_key' => env('QINIU_ACCESS_KEY', ''), 'secret_key' => env('QINIU_SECRET_KEY', ''), 'bucket' => env('QINIU_BUCKET', ''), 'domain' => env('QINIU_DOMAIN', ''), ] ], /* * 短信配置 */ 'sms' => [ 'ali' => [ 'status' => '1', 'access_key_id' => env('ALIYUN_SMS_ACCESS_KEY_ID'), 'access_key_secret' => env('ALIYUN_SMS_ACCESS_KEY_SECRET'), 'sign_name' => env('ALIYUN_SMS_SIGN_NAME'), 'captcha' => [ "template_id" => "SMS_275060336", // 模板id "template_variable" => "code", //模板变量 ], "doctor" => [ "register" => [ //挂号订单提醒 "template_id" => "SMS_462205458", "template_variable" => "" ], "prescription_pass" => [ "template_id" => "SMS_462260412", "template_variable" => "order" ], "prescription_refuse" => [ "template_id" => "SMS_462230433", "template_variable" => [ "order", "cause" ] ] ], "pharmacist" => [ "wait_approval" => [ "template_id" => "SMS_462255406", "template_variable" => "" ] ] ] ], /* * 旧接口配置 */ 'base_url' => [ 'old_api' => env('BASE_OLD_API_URL', ''), 'old_shop_api' => env('BASE_OLD_SHOP_API_URL', ''), // 微信接口 'we_chat_api' => env('BASE_WE_CHAT_API_URL', ''), ], /* * 日志配置 */ 'log' => [ // 不添加返回记录的api接口(路径不含 /api/ 前缀,与中间件规范化后一致) 'no_insert' => [ 'login', 'register', 'admin/my-info', 'admin/codes', 'admin/menu', 'admin/login-log', 'admin/op-log', 'api-endpoint/list', 'oss-config/runtime-options', 'oss-config/driver-options', 'oss-config/list', 'ai-config/runtime-options', 'ai-config/key-list', 'ai-config/platform-option', 'ai-config/generation-list', 'wechat-account/list', 'wechat-account/option', 'wechat-article/list', 'wechat-article/version-list', ] ], 'app' => [ 'we_chat' => [ 'app_id' => '', 'app_secret' => '', 'merchant_id' => '', 'merchant_key' => '', 'apiclient_cert' => '', 'apiclient_key' => '' ] ], ];