<?php

return [
    /*
     * 认证守卫
     */
    'guard' => env('KYLIN_AUTH_GUARD', 'web'),

    /*
     * Token 配置
     */
    'token' => [
        'expiration' => env('KYLIN_AUTH_TOKEN_EXPIRATION', 60),     // 分钟
        'refresh_ttl' => env('KYLIN_AUTH_REFRESH_TTL', 20160),      // 14 天
    ],

    /*
     * 登录方式
     */
    'login_methods' => ['phone', 'email', 'wechat'],

    /*
     * 验证码
     */
    'captcha' => [
        'enabled' => env('KYLIN_AUTH_CAPTCHA', true),
        'length' => 6,
        'ttl' => 300, // 5 分钟
    ],

    /*
     * 法律合规 - 密码策略
     *
     * 依据等保 2.0 (GB/T 22239) 8.1.4.2，密码需满足复杂度要求。
     */
    'password' => [
        'min_length' => env('KYLIN_AUTH_PASSWORD_MIN_LENGTH', 8),
        'require_uppercase' => env('KYLIN_AUTH_PASSWORD_REQUIRE_UPPER', true),
        'require_lowercase' => env('KYLIN_AUTH_PASSWORD_REQUIRE_LOWER', true),
        'require_number' => env('KYLIN_AUTH_PASSWORD_REQUIRE_NUMBER', true),
        'require_special' => env('KYLIN_AUTH_PASSWORD_REQUIRE_SPECIAL', true),
        'max_age_days' => env('KYLIN_AUTH_PASSWORD_MAX_AGE', 90),  // 密码最长有效期
    ],

    /*
     * 法律合规 - 登录安全
     *
     * 依据等保 2.0 (GB/T 22239) 8.1.4.4，登录失败处理。
     */
    'login_security' => [
        'max_attempts' => env('KYLIN_AUTH_LOGIN_MAX_ATTEMPTS', 5),       // 最大登录尝试次数
        'lockout_minutes' => env('KYLIN_AUTH_LOGIN_LOCKOUT', 30),        // 锁定时间（分钟）
        'session_lifetime' => env('KYLIN_AUTH_SESSION_LIFETIME', 120),   // 会话超时（分钟）
        'single_device' => env('KYLIN_AUTH_SINGLE_DEVICE', false),       // 单设备登录
    ],

    /*
     * 模型
     */
    'models' => [
        'user' => \Kylin\User\Models\User::class,
    ],
];
