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ì?
Trả lời
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.
Để 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.
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.
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è
- 1. Xác thực và ủy quyền của người dùng WCF
- 2. Xác thực và ủy quyền JSF
- 3. Kiến trúc để xác thực/ủy quyền của người dùng di động và web
- 4. Xác thực và ủy quyền cho API RESTfull (java jersery)
- 5. Giải pháp xác thực và ủy quyền cho Padrino
- 6. Lớp logic kinh doanh có nên thực hiện ủy quyền và xác thực không?
- 7. Cách triển khai xác thực người dùng bằng clojure-liberator?
- 8. Xác thực và ủy quyền biểu mẫu MVC 4
- 9. Xác thực, xác thực người dùng và Django-ngonpie
- 10. Ủy quyền và vai trò người dùng trong Oracle Apex?
- 11. Cách thích hợp để thực hiện mã hóa xác thực trong Java là gì?
- 12. Xác thực, Ủy quyền, Quản lý người dùng và vai trò và Bảo mật chung trong .NET
- 13. Xác thực liên kết và xác thực được ủy quyền trong Salesforce
- 14. Xác thực người dùng trong Pyramid
- 15. Các chiến lược để xử lý xác thực người dùng trên nhiều nền tảng và ủy quyền
- 16. Cách dễ dàng để xác thực và ủy quyền với JAX-RS Jersey
- 17. ASP.NET MVC Authorize Attribute thực hiện chuyển hướng 302 khi người dùng không được ủy quyền
- 18. Kiểm tra xem người dùng có được ủy quyền (Xác thực cơ bản HTTP, Rails 3.0.9)
- 19. Cách ưa thích để thực hiện cài đặt trong ứng dụng Ruby on Rails 3 là gì?
- 20. Làm cách nào để thực hiện ủy quyền trong ASP.net MVC 4 hôm nay?
- 21. PHP "Session_regenerate_id" và Xác thực người dùng
- 22. Người dùng có vai trò là "quản trị" nhưng [Ủy quyền (Vai trò = "quản trị")] sẽ không xác thực
- 23. Cách tốt nhất để thực hiện ủy quyền chi tiết cho một ứng dụng web là gì?
- 24. Cần một khung xác thực/ủy quyền python
- 25. Backbone.js và xác thực người dùng
- 26. [Ủy quyền (Người dùng = "*")] có nghĩa là gì trong asp.net mvc
- 27. Bạn đang sử dụng lược đồ xác thực và ủy quyền nào - và tại sao?
- 28. Làm cách nào để xử lý xác thực và ủy quyền với tiết kiệm?
- 29. Tôi nên xử lý Ủy quyền/Xác thực trong ứng dụng Asp.net MVC bằng cách nào?
- 30. Cách ưa thích để preallocate mảng NumPy là gì?
Đâ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 –