2009-07-20 50 views
8

Tôi đang sử dụng PHP và khung công tác viết mã cho một dự án tôi đang làm việc, và yêu cầu một hệ thống đăng nhập/xác thực người dùng.thư viện/khung công tác xác thực người dùng php ... các tùy chọn là gì?

Hiện tại tôi không muốn sử dụng SSL (có thể quá mức cần thiết và thực tế là tôi đang sử dụng tính năng chia sẻ lưu trữ không khuyến khích điều này). Tôi đã xem xét sử dụng openID nhưng đã quyết định rằng vì đối tượng mục tiêu của tôi nói chung không phải là kỹ thuật, nó có thể đe dọa người dùng (không kể rằng nó đòi hỏi phải phản ánh thông tin đăng nhập, v.v.). Tôi biết rằng tôi có thể viết một xác thực dựa trên băm (chẳng hạn như sha1) vì không có dữ liệu nhạy cảm nào được truyền đi (tôi so sánh mức độ nhạy với của stackoverflow).

Điều đó đang được nói, trước khi thực hiện giải pháp tùy chỉnh, bạn sẽ biết liệu có bất kỳ thư viện hoặc gói nào tốt mà bạn đã sử dụng để cung cấp xác thực nửa bảo mật không? Tôi mới vào codeigniter, nhưng cái gì đó tích hợp tốt với nó sẽ là thích hợp hơn. Bất kỳ ý tưởng? (Tôi mở cửa cho những lời chỉ trích về cách tiếp cận của tôi và mở để gợi ý về lý do tại sao tôi có thể điên không chỉ sử dụng ssl). Cảm ơn trước.

Cập nhật: Tôi đã xem xét một số đề xuất. Tôi tò mò muốn thử zend-auth vì nó có vẻ được hỗ trợ và xây dựng tốt. Có ai có kinh nghiệm với việc sử dụng zend-auth trong codeigniter (là nó quá cồng kềnh?) Và bạn có một tài liệu tham khảo tốt về tích hợp nó với CI? Tôi không cần bất kỳ chương trình xác thực phức tạp nào .. chỉ cần một hệ thống ủy quyền đăng nhập/đăng xuất/quản lý mật khẩu đơn giản.

Ngoài ra, dx_auth có vẻ thú vị, tuy nhiên tôi lo rằng nó quá lỗi. Có ai khác đã thành công với điều này?

Tôi nhận ra rằng tôi cũng muốn quản lý người dùng khách vãng lai (tức là người dùng không đăng nhập/đăng ký) trong một cách tương tự như stackoverflow..so bất kỳ ý kiến ​​cho rằng có chức năng này sẽ là tuyệt vời

+0

kiểm tra câu trả lời: http://stackoverflow.com/questions/1106604/framework-for-administrating-users/1116855#1116855 –

+0

có cũng phần auth PEAR – kguest

+0

Bạn có thể muốn có một cái nhìn tại https: // github.com/delight-im/PHP-Auth vốn vừa là kiến ​​thức bất khả tri về mặt kiến ​​thức và cơ sở dữ liệu. – caw

Trả lời

2

Tôi đã tìm thấy dx_auth là khá tốt trong Codeigniter và đã sử dụng nó trước đây. Nó chắc chắn là thư viện xác thực đầy đủ tính năng nhất cho Codeigniter.

Có một vài điều tôi cần làm để thay đổi nó, vì vậy tôi mở rộng lớp người dùng của họ với một vài chức năng cho mục đích của tôi (một số chức năng của họ không làm chính xác những gì bạn có thể mong đợi ..). Dưới đây là một đoạn của một số các tùy chỉnh tôi đã thực hiện:

 $CI = &get_instance(); 
    $CI->load->model("dx_auth/users"); 
    /** 
    * For most things, try and use the dx_auth models, 
    * because it's already done, and some stuff is more 
    * annoying to figure out than might be expected. 
    * 
    * For anything site-specific, use this model instead. 
    * 
    */ 

    class UserModel extends Users { 
     /** 
     * Sometimes when dx_auth sucks, you have to compensate 
     * functions that return useful results. 
     * 
     * @param int $id id of user to check if banned 
     * @return int $banned returns the result (0 or 1) 
     */ 
     public function is_banned($id) { 
      $query = "SELECT banned FROM users WHERE id=".(int)$id; 
      $result=$this->db->query($query); 
      $row = $result->row_array(); 
      return $row['banned']; 
     } 


    } 
+0

Tôi cũng đã sử dụng nó cho nhiều dự án và đã thành công với nó. Nó đơn giản và làm khá nhiều thứ bạn cần. – ryeguy

4

tôi sử dụng Zend_Auth . Nhưng tôi làm việc với Zend Framework nói chung. Những gì tôi đã nghe nó tích hợp tốt với CI. Với Zend_Auth tôi sử dụng Bộ điều hợp Db_Table và SHA1 với muối toàn cầu. Đó là đủ cho nhiều mục đích tôi nghĩ.

+0

Một vài năm kinh nghiệm sau đó, và bây giờ tôi biết codeigniter là cách cách ngày. Tôi sử dụng ZF cho tất cả mọi thứ bây giờ, và cần phải học Doctrine. –

2

Hình như this có thể là chính xác những gì bạn đang tìm kiếm, nếu bạn muốn nhận được zend-auth làm việc trong CodeIgniter. Vui lòng cập nhật câu hỏi của bạn một lần nữa nếu bạn thấy zend-auth & codeigniter là một kết hợp tốt ..

Cá nhân tôi đã tìm thấy hack dx_auth là một nỗi đau, đặc biệt là do thiếu tài liệu và tôi rất muốn cho một cái gì đó khác một shot nếu nó âm thanh đầy hứa hẹn.

+0

cảm ơn, tôi có thể thực hiện cú đánh này – oym

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