auth_totp_start

`auth_totp_start` 指令设置 NGINX 中基于时间的一次性密码 (TOTP) 算法的起始时间。

语法auth_totp_start ;
默认值none
上下文http, server, location, limit_except
参数1

说明

auth_totp_start 指令指定 TOTP 算法开始生成一次性密码的初始时间,单位为自 Unix epoch 起的秒数。该时间设置对于 TOTP 机制至关重要,因为它决定了后续基于时间的令牌生成的参考点。当用户尝试进行认证时,TOTP 算法根据此起始时间计算响应,这会影响基于当前时间和已配置时间步长生成的一次性密码的有效性。

在实际使用中,如果 auth_totp_start 未与服务器时钟或客户端时钟对齐,可能导致认证失败。此指令与像 auth_totp_step 这样的其它指令一起,通过控制密码生成何时开始来实现对 TOTP 系统的精细配置。将此配置与期待一次性密码的应用逻辑相匹配至关重要,因为不一致会导致有效令牌被错误地视为已过期或不可用。此外,如果起始时间设置得过于久远,在某些情况下可能会生成重叠的令牌,从而可能损害每次请求密码的唯一性。

配置示例

server {
    listen 80;

    location /protected {
        auth_totp_realm "Protected";
        auth_totp_file /etc/nginx/totp.conf;
        auth_totp_length 8;
        auth_totp_start 1633046400;  # Example Unix timestamp
        auth_totp_reuse off;
        auth_totp_skew 1;
        auth_totp_step 1m;
        auth_totp_cookie "totp-session";
        auth_totp_expiry 1d;
    }
}

设置 auth_totp_start 不正确可能导致令牌不匹配和身份验证失败。

指定的开始时间应与服务器的时间设置同步,以避免生成已过期的令牌。

如果未明确设置,该指令默认为 'none',这可能导致 TOTP 流程中出现不可预测或默认的行为。

← 返回所有指令