Bối cảnh nghiên cứu:an toàn client-side couchApp/CouchDB xác thực người dùng
User Signup in Couchapp/CouchDB through jquery.couch.js or Otherwise
https://issues.apache.org/jira/browse/COUCHDB-1175 - đặc biệt "Ari Najarian" 's bài viết
Câu hỏi:
Để diễn giải câu hỏi SO tôi đã đăng ở trên:
"Về cơ bản tôi muốn có một mẫu đăng ký để đăng ký tài khoản trong couchdb cho một couchapp. Điều này sẽ đòi hỏi phải tạo ra một người dùng mới trong cơ sở dữ liệu couchdb _users, và tạo ra một cơ sở dữ liệu mới, với người dùng mới được gán vai trò của quản trị cơ sở dữ liệu. Tất cả những gì yêu cầu thông tin đăng nhập quản trị viên máy chủ. "
Câu trả lời cho câu hỏi trước có liên quan đến máy chủ riêng biệt được đăng nhập vào couchdb làm quản trị viên để theo dõi couchdb và sửa đổi couchdb như mong muốn để đáp ứng một số sự kiện dữ liệu đến từ khách hàng
Câu hỏi của tôi là - đó có phải là cách duy nhất không? Điều đó không đánh bại toàn bộ mục đích của ngăn xếp web 2 tầng của couchdb? Có cách nào để sửa đổi cơ sở dữ liệu couchdb từ bên trong chức năng xác thực kiểm tra "loại == người dùng "tài liệu trong khi" nội bộ "/ đăng nhập riêng lẻ với tư cách là quản trị viên có thể?
Tôi xin lỗi nếu có một số cách đơn giản để thực hiện việc này và tôi đã không làm như vậy ' t tìm tài liệu phù hợp.
tắm Vấn đề rõ:
- Có trường hợp couchdb ngồi tại một địa chỉ internet.
- Cơ sở dữ liệu ghế dài này phục vụ cho khách hàng ngẫu nhiên một trang html và tập lệnh javascript được nhúng có chứa biểu mẫu đăng nhập/đăng nhập.
- Khách hàng nhập thông tin đăng ký (tên, mật khẩu) và gửi
- Tập lệnh JS sử dụng đối tượng XMLHttpRequest để mở kết nối với cá thể couchdb và gửi ... PROBLEM!
Vấn đề # 1 - Nếu thông tin đăng nhập được lưu trữ trong mã (được gửi dưới dạng xác minh cho cơ sở dữ liệu người dùng mới), thì mọi người có thể "xem nguồn html" và tiếp quản cơ sở dữ liệu.
-HOẶC-
Vấn đề # 2 - Nếu thông tin không được cung cấp và yêu cầu được gửi nặc danh, sau đó một người dùng mới sẽ được tạo ra trong cơ sở dữ liệu _users và một tin nhắn trả lời thành công sẽ được gửi đi. Nhưng không có cơ sở dữ liệu mới nào được tạo cho người dùng (và không thể không có thông tin đăng nhập quản trị viên) mà người dùng có thể tương tác với các mục đích cụ thể cho ứng dụng (ví dụ: thêm/xóa dữ liệu). Và - từ liên kết blog trên couchbase - nếu bạn đã bảo vệ cơ sở dữ liệu của mình với các vai trò/tên đối với người đọc ẩn danh và chức năng xác thực để ngăn chặn ghi danh ẩn danh, thì tài khoản người dùng ẩn danh (ví dụ: khách hàng muốn đăng ký không gian cơ sở dữ liệu để sử dụng ứng dụng) không thể làm bất cứ điều gì bởi vì một người dùng ẩn danh không thể, vì lý do bảo mật rõ ràng, chỉ định bất kỳ vai trò nào họ muốn có.Điều đó có nghĩa là cách duy nhất để có người dùng có chức năng là tạo tài khoản người dùng + cơ sở dữ liệu liên quan với tư cách quản trị viên trước và sau đó đưa ra các thông tin đăng nhập của người dùng - như hệ thống mời riêng tư, vâng?
Để nhắc lại, có cách nào không, chỉ sử dụng couchdb và một số kết hợp các trình xử lý xác thực của couchdb, các chức năng tài liệu thiết kế, ajax phía máy khách, v.v ... cho khách hàng kết nối để đăng ký và nhận cơ sở dữ liệu cá nhân (và CHỈ cơ sở dữ liệu đó rõ ràng) họ có quyền truy cập và có thể tương tác với?
bản sao có thể có của [Đăng ký người dùng trong Couchapp/CouchDB thông qua jquery.couch.js hoặc Nếu không] (http://stackoverflow.com/questions/5305543/user-signup-in-couchapp-couchdb-through-jquery-couch -js-hoặc-else) –
Tôi có câu hỏi được liệt kê trong phần "nghiên cứu nền" của tôi trong câu hỏi của tôi (và vì vậy, 2 câu hỏi được liên kết ngay bây giờ). Tôi tạo ra bài đăng này vì các giải pháp gợi ý về câu hỏi khác liên quan đến việc thêm một lớp mini khác vào tầng couchdb và tôi muốn biết liệu có một giải pháp couchdb "thuần túy" cho vấn đề hay không. Tôi đã đăng lên liên kết trên nhưng tôi không muốn chiếm đoạt câu hỏi của người khác. – jigritsn
Câu hỏi này chắc chắn có liên quan. Tôi muốn có một giải pháp duy nhất và an toàn, couchdb chỉ – gregm