2011-11-07 67 views
6

Tôi đang bảo vệ máy chủ dev của mình bằng nginx và mô-đun auth_basic, nhưng dường như tôi không tìm được cách xác định khoảng thời gian mà 'xác thực' hết hạn.nginx auth_basic giới hạn thời gian

Tôi muốn có thể buộc nginx yêu cầu mật khẩu nói 6 giờ một lần. Có cách nào làm được việc này không? Nếu không, cách giải quyết có thể chấp nhận là gì?

Trả lời

5

Có thể là không thể. Dường như không có bất kỳ tài liệu nào trên số nginx HttpAuthBasicModule page để đề xuất rằng bạn có thể hết thời gian xác thực HTTP cơ bản.

Các tiêu đề HTTP specification cho Authorization cũng không chỉ định cơ chế thời gian chờ. Tôi không mong đợi bạn sẽ có thể dựa vào xác thực cơ bản nếu bạn cần thời gian chờ, trừ khi bạn cũng đang truy cập một ứng dụng web.

Nếu bạn đang đứng trước một ứng dụng web, bạn có thể duy trì một phiên trong cookie và hết giờ sau một khoảng thời gian không hoạt động. Khi hết thời gian chờ phiên, hãy sử dụng ứng dụng web của bạn để gửi các tiêu đề sau:

HTTP/1.1 401 Unauthorized 
WWW-Authenticate: Basic Realm="MyApp" 

Điều đó sẽ nhắc trình duyệt yêu cầu lại bằng chứng xác thực. Nếu bạn cần quyền truy cập vào danh tính của người dùng trong ứng dụng web của mình, bạn phải tìm thấy nó trong biến môi trường CGI REMOTE_USER CGI.

Để phân phát nội dung tĩnh hiệu quả bằng kỹ thuật này, XSendfilemight be useful.

+0

CGI không tự động cung cấp 'REMOTE_USER'. Bạn có thể đặt nó bằng 'fastcgi_param REMOTE_USER $ remote_user;'. – bzeaman

Các vấn đề liên quan