#nginxのDigest認証が切れるタイミング
とある業務で、nginxでダイジェスト認証を載せています。
お客さんから、ダイジェスト認証の認証が切れるのっていつ?と質問され、auth_digest_timeoutで指定された時間(デフォルト60秒)ですよと答えたが、これが全然違った。
認証してからauth_digest_timeout時間経過しても、認証用ポップが表示されないという。。
試してみると、auth_digest_timeoutを10秒にして、1分放置しても全然問題ない。。。
いや、401は返されるが、WWW-Authenticateにstale=trueが設定されない!
#原因
なんで?ということで、ソースを確認。
ダイジェスト認証のnonceを捨てる時間は、auth_digest_drop_timeでした。
auth_digest_drop_timeを秒単位で設定(デフォルト300)し、この時間が過ぎるとnonceを捨てていました。
公式のGitHubにも書いてなかったので、記事にしてみました