Bạn đang pha trộn mọi thứ một chút.
authenticateUser();
chạy trên máy chủ, trong khi xác thực xảy ra trên máy khách. Bạn không thể dừng ở giữa việc chạy một tập lệnh PHP để xác thực ứng dụng khách và sau đó tiếp tục chạy tập lệnh PHP.
Là một giải pháp cho câu hỏi của bạn, điều này có thể làm việc trong trường hợp của bạn:
if(authenticationNeeded)
{
// redirect to a page that requires authentication that does what index was supposed to do.
redirect('index_ssl.php');
}
Bằng cách sử dụng .htaccess
bạn có thể xác định SSLVerifyClient require
chỉ cho một số các thư mục/tập tin.
Điểm mấu chốt là: máy chủ web của bạn (Apache trong trường hợp này) yêu cầu chứng chỉ ứng dụng để cấp quyền truy cập vào bất kỳ thư mục/tệp nào bạn chỉ định SSLVerifyClient require
.
Tóm lại, không có cách nào để làm những gì bạn muốn. Bạn chỉ có thể có các tệp/thư mục yêu cầu hoặc không yêu cầu chứng chỉ ứng dụng khách. Không có cách nào để dừng ở giữa tệp PHP để yêu cầu chứng chỉ ứng dụng khách, nhưng bạn có thể chuyển hướng đến một chứng chỉ yêu cầu.
Nguồn
2009-11-30 23:08:29
ok. sau khi máy chủ web thực hiện xác thực, trong PHP có thể xác minh và/hoặc đọc bất kỳ dữ liệu nào từ chứng chỉ/xác thực ứng dụng khách không? – Massimo