it-swarm-vi.com

URL để đăng nhập người dùng là gì (aka Làm thế nào để ẩn biểu mẫu đăng nhập?)

Tôi không muốn cho phép khách truy cập đăng ký trên trang web của tôi; tuy nhiên, tôi thấy cần phải có một người dùng đã đăng ký cho mục đích thử nghiệm. Ví dụ: tôi sẽ xuất bản một bài viết có quyền truy cập hạn chế để người dùng thử nghiệm của tôi có thể thấy bài viết đó trông như thế nào trên trang web mà không "phát sóng bất kỳ đồ giặt bẩn nào" cho công chúng (ok, tất cả 1/ngày ai thực sự truy cập ...) .

Vấn đề của tôi tại thời điểm này là cuối cùng tôi đã xóa trang web vì tôi phải xuất bản/hủy xuất bản mẫu đăng nhập người dùng. Hiện tại, tôi 'phá vỡ' vấn đề này bằng cách ẩn biểu mẫu đăng nhập trong danh mục con để nó không hiển thị ngay lập tức đối với khách truy cập thông thường. Có thể tạo một phương pháp thay thế (ví dụ: URL tùy chỉnh) sẽ cho phép người dùng thử nghiệm của tôi xem nội dung được đánh dấu là bị hạn chế mà không thay đổi những gì khách có quyền truy cập công khai sẽ nhìn thấy?

10
bobthechemist

Bạn có thể tạo một menu không được xuất bản và đặt một liên kết đến trang đăng nhập người dùng ở đó và đặt tên cho bí danh bất cứ điều gì bạn muốn. Miễn là bạn tắt chức năng đăng ký cho phép trong các tùy chọn quản lý người dùng, bạn sẽ ổn.

Sau đó, chỉ cần cung cấp cho khách hàng của bạn url.

Vì vậy, các bước là:

  1. Tạo một menu mới, đặt tên là Ẩn
  2. Không xuất bản một mô-đun của menu mới
  3. Thêm một mục menu mới, chọn Trình quản lý người dùng và biểu mẫu Đăng nhập
  4. Tiêu đề mục menu Đăng nhập hoặc một cái gì đó để bạn biết nó là gì, nhưng thay đổi bí danh thành một cái gì đó mà ai đó sẽ không đoán được.
  5. Kiểm tra biểu mẫu của bạn bằng cách truy cập yoursite.com/aliasname
8
Brian Peat

Như một phần mở rộng cho câu trả lời của Brian Peat:

Nếu bạn đi đến url

domain.com/index.php?option=com_users&view=login

bạn có thể đăng nhập mà không cần thiết lập một mục menu hoặc bất kỳ loại vấn đề xuất bản/chưa xuất bản nào. Điều này có thể được gọi là một phần của một vấn đề trong Joomla vì biết cách của bạn xung quanh bạn vẫn có thể đăng ký/đăng nhập nếu bạn biết cấu trúc url. Có các quy tắc để ngăn chặn điều này nhưng thông thường theo mặc định, bạn chỉ có thể sử dụng các đường dẫn trực tiếp như thế để đến nơi bạn cần đến.

http://www.joomla.org/index.php?option=com_users&view=login

Đây là nơi làm việc, ngay cả trang web Joomla chính không có quyền truy cập trực tiếp để đăng nhập cũng có thể được truy cập như thế.

Quan điểm của tôi là, đảm bảo bạn cũng sử dụng ACL thích hợp, nếu người dùng đã đăng ký "chỉ" của nó thì bất kỳ ai biết cấu trúc của Joomla đều có thể tham gia. Cũng như Brian đã nói chắc chắn rằng việc cho phép đăng ký bị tắt.

10
Jordan Ramstad

Bạn sẽ có thể thực hiện điều này bằng cách ghi đè bố cục cho biểu mẫu đăng nhập giao diện người dùng. Thêm một số PHP mã gần đầu tệp bố cục. Mã được thêm này kiểm tra một tham số tùy chỉnh trong URL và cho một giá trị cụ thể. Nếu ai đó cố gắng truy cập trang đăng nhập thông qua bất kỳ URL nào nhưng không bao gồm tham số tùy chỉnh và giá trị cụ thể (chẳng hạn như abc = xyz), sau đó mã sẽ đưa ra "return;" để bố cục của biểu mẫu sẽ không được xử lý để hiển thị.

Với mã này trong tệp bố cục ghi đè, chỉ người dùng biết URL (bao gồm tham số tùy chỉnh này và giá trị chấp nhận được) mới có thể sử dụng biểu mẫu đăng nhập đó.

Ví dụ : URL bí mật có thể là

mydomain.com/?option=com_users&view=login&abc=xyz

Sau đó thêm mã này ở gần đầu tệp bố cục ghi đè cho biểu mẫu đăng nhập:

if(JFactory::getApplication()->input->get('abc')!='xyz'){
    return;
}
4
RCarey

Tôi thường gặp phải một vấn đề tương tự vì tôi thường muốn đăng nhập ở mặt trước để chỉnh sửa các trang web tôi quản lý mà không cần phải có biểu mẫu đăng nhập. Cuối cùng tôi đã tạo ra một bookmarklet mà tôi đã thêm vào thanh công cụ trình duyệt của mình. Đây rõ ràng là một giải pháp rất "cục bộ", vì bookmarklet chỉ có sẵn cho tôi (hoặc bất kỳ ai tôi sao chép mã), nhưng nó hoạt động trên trang web BẤT K Joomla Joomla và là một trình tiết kiệm thời gian đáng kinh ngạc, chỉ cần nhấp vào liên kết và biểu mẫu đăng nhập sẽ được hiển thị (tất nhiên là bạn đang ở trên một trang web Joomla, tất nhiên ...).

 javascript:void((function(){var loc = location.href; loc.indexOf("?") == -1 ? (location.href = loc+"?option=com_users&view=login") : (location.href = loc+"&option=com_users&view=login");})());
3
johanpw