2012-03-14 32 views
15

Tôi đã làm việc trên một ứng dụng web trong Clojure như là một dự án phụ, và tôi đang cố gắng tìm ra cách để xác thực người dùng và tự động hóa. Từ googling tôi đã làm, tôi nghe nói về sandbar, nhưng sau khi đọc hai blogposts trên sandbar (Part 1, Part 2), tôi còn lại với nhiều câu hỏi hơn câu trả lời. Tôi đã xem số source code cho 4clojure và từ những gì tôi có thể nói, chúng tự cuộn, vấn đề là mã không được nhận xét rất tốt, nếu có. Tôi nghĩ rằng tôi cần phải cuộn hệ thống của riêng tôi và sử dụng sandbar hoặc noir.session để truyền thông tin người dùng xung quanh. Làm ơn ai đó có thể chỉ cho tôi đúng hướng? Tôi cảm thấy như tôi đang thiếu một cái gì đó đơn giản.cách ưa thích để thực hiện xác thực người dùng và ủy quyền trong Clojure là gì?

+0

Đây là một cuộc trò chuyện hữu ích về một số vấn đề với trạng thái bảo mật trong Clojure: https://www.youtube.com/watch?v=CBL59w7fXw4 –

Trả lời

9

Tôi đã xem qua số 4clojure login code và tôi nghĩ rõ ràng cách triển khai hoạt động. Về cơ bản nó là xác thực HTTP truyền thống. Đăng người dùng/pwd dưới dạng URL, kiểm tra tên người dùng và mật khẩu và cập nhật phiên với thông tin người dùng có thể được sử dụng cho các yêu cầu khác để kiểm tra xem phiên này có dành cho người dùng đã đăng nhập hợp lệ hay không.

Đây là cách hầu hết các xác thực ứng dụng web hoạt động. Bây giờ đây là "phải làm gì" một phần của tình huống, "làm thế nào để" bạn có thể tự thực hiện bằng cách sử dụng các tính năng "nguyên thủy" được cung cấp bởi khung công tác web hoặc có thể sử dụng một số phần mềm trung gian. một số móc để tùy chỉnh việc thực hiện một chút.

8

Để xác thực, ngoài việc hiển thị "cuộn riêng", tôi thấy https://github.com/mattrepl/clj-oauth hoạt động tốt nếu bạn muốn sử dụng OAUTH (ví dụ: qua Twitter). Một khi bạn đã có được thông tin người dùng, lưu trữ nó trong một số loại đối tượng phiên (thông qua ring-middleware-session hoặc trừu tượng tương tự) có vẻ là điều hiển nhiên để làm.

Để ủy quyền, cách được mô tả trong bài đăng trên blog mà bạn đã liên kết - bao gói các tuyến nhất định với phần mềm trung gian ủy quyền (hoặc bất kỳ thứ gì mà web ưa thích của bạn cung cấp - ví dụ: pre-route trong Noir) hoạt động tốt.

10

Thư viện Chas Emerick's Friend hiện đã có sẵn. Nó vẫn còn tương đối mới, nhưng trông đầy hứa hẹn và khá tài liệu.

5

Ngoài ra còn có một thay thế cho bạn bè được gọi là Buddy.

Sự khác biệt với bạn bè là gì?

Cơ sở cấp phép/xác thực thân thiết ở mức thấp hơn và ít được cho rằng bạn bè và cho phép xây dựng chúng dễ dàng hơn. Về mặt kỹ thuật, sự trừu tượng của bạn bè có thể được xây dựng trên đầu trang của bạn bè

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