2010-06-11 48 views
9

Tôi muốn chạy một ứng dụng trong phiên bản beta riêng tư bị giới hạn trên heroku.Phiên bản beta riêng tư được hỗ trợ bởi Heroku được hỗ trợ

Chúng tôi đang thay đổi ứng dụng thường xuyên và chưa thực hiện kiểm tra bảo mật.

Để ngăn mọi người khai thác nội dung, chúng tôi muốn khóa toàn bộ trang web, vì vậy bạn cần mật khẩu để truy cập mọi thứ.

Lý tưởng nhất là sử dụng các tệp .htaccess và .htpasswd để khóa toàn bộ trang web trên máy chủ Apache.

Có cách nào đơn giản để thực hiện việc này cho ứng dụng được lưu trữ trên máy chủ của heroku không?

+0

Duplicate/tương tự http://stackoverflow.com/questions/3839167/is-there-a-way-to-set-up-đơn giản-http-xác thực-cho-an-app-on-heroku – tothemario

Trả lời

3

.htaccess.htpasswd về cơ bản yêu cầu Apache xác thực người dùng bằng hệ thống Xác thực cơ bản. Bạn có thể làm tương tự với một lớp Pure-Rack.

Xem http://rack.rubyforge.org/doc/Rack/Auth/Basic.html

Bởi vì bạn đang sử dụng Heroku, tôi giả sử bạn đang triển khai một ứng dụng Rack-tương thích (hoặc một Rack, Rails hoặc ứng dụng Sinatra).

5

Chỉ cần sử dụng authenticate_or_request_with_http_basic trong before_filter trong ApplicationController của bạn.

Xem này Railscasts tập để được hướng dẫn: http://railscasts.com/episodes/82-http-basic-authentication

+0

đã thử nó, nhưng sẽ không chơi tốt đẹp với devise. dường như tạo ra một vòng chuyển hướng vô hạn –

+0

Ah! Chỉ cần thêm 'warden.custom_failure! nếu được thực hiện? 'ở cuối phương thức lọc (như trong https://gist.github.com/dc7906d07174c8514551) – plindberg

+0

Tôi đã thử phương pháp này với' warden.custom_failure! nếu được thực hiện? ', và nó hoạt động, nhưng nó gây ra một vấn đề khác. Khi bạn cố gắng đăng nhập với tư cách người dùng (sử dụng devise), nó nói "tên người dùng và mật khẩu sai", có thể vì nó đang cố sử dụng u/p mà tôi đã sử dụng để xác thực HTTP cơ bản. Ý tưởng nào? –

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